Converting a list to an array with ToArray()
Asked Answered
H

3

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.

Henpeck answered 3/4, 2012 at 9:16 Comment(4)
A listitem isn't the same as a list<> ;)Moulin
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.Mader
Is that typed in correctly? Your issue seems to have nothing to do with the ToArray() call.Eme
The error message you've posted relates to converting array of ListItems into List<ListItem>, not the other way around. List<ListItem>.ToArray() should work perfectly fine. Post whole code or whole error message.Microgamete
B
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.

Blossom answered 3/4, 2012 at 9:46 Comment(3)
How to give size?Conciliate
To get size: myArray.size. To set: myArray = new Array[5]; but deletes old arrayBlossom
It works. ToArray() on a List converts the list to array depending on the type. Thanks.Chemaram
M
2

have you tried

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

in Java it works, im not sure in c#

Marijuana answered 3/4, 2012 at 9:24 Comment(0)
S
0
string[] s = myList.ToArray();

Considering myList is list of string

Spitler answered 3/4, 2012 at 9:25 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.