9

I've created a class called listItem and the following list:

List<listItem> myList = new List<listItem>();

At some point in my code, I want to convert it to an array, thereby using:

listItem[] myArray = myList.ToArray();

Unfortunately, this doesn't work, and I get this error message:

Cannot convert [...] listItem[] to [...] List<listItem>

I tried to figure this out, but very unsuccessfully...

Thanks in advance.

EDIT: My bad, the first code line I wrote was indeed mistyped!

Actually, all the code above works pretty well. My error was due to the fact that my function:

List<listItem> myFunction()

returned myArray, hence the conversion problem... It is now fixed. :)

Thank you all for your answers.

user2771704
  • 5,994
  • 6
  • 37
  • 38
Jodll
  • 285
  • 2
  • 3
  • 6
  • 1
    A listitem isn't the same as a list<> ;) – Yuki Kutsuya Apr 03 '12 at 09:20
  • 2
    Your first line won't compile to start with, and the error message suggests a conversion the other way round. Please show a short but complete program demonstrating the problem, and the verbatim error message. – Jon Skeet Apr 03 '12 at 09:20
  • Is that typed in correctly? Your issue seems to have nothing to do with the ToArray() call. – Ritch Melton Apr 03 '12 at 09:20
  • 2
    The error message you've posted relates to converting array of ListItems into List, not the other way around. List.ToArray() should work perfectly fine. Post whole code or whole error message. – SiliconMind Apr 03 '12 at 09:21

3 Answers3

14

This is the error (as pointed out from Darkshadw and Jon Skeet)

listItem myList = new List<listItem>();

You are assigning the value of a List to a listItem.

Replace it with

List<listItem> myList = new List<listItem>();

to create a list of listItem. Then

listItem[] myArray = myList.ToArray();

will work.

Gabber
  • 5,152
  • 6
  • 35
  • 49
2

have you tried

listItem[] myArray = myList.ToArray(new listItem[]{});

in Java it works, im not sure in c#

Irvin Dominin
  • 30,819
  • 9
  • 77
  • 111
0
string[] s = myList.ToArray();

Considering myList is list of string

R.D.
  • 7,153
  • 7
  • 22
  • 26