Преобразование списка в массив с помощью ToArray ()

Я создал класс listItem и следующий список:

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

В какой-то момент своего кода я хочу преобразовать его в массив, используя:

listItem[] myArray = myList.ToArray();

К сожалению, это не работает, и я получаю следующее сообщение об ошибке:

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

Я пытался в этом разобраться, но безуспешно ...

Заранее спасибо.

РЕДАКТИРОВАТЬ: Моя проблема, первая строка кода, которую я написал, действительно была опечатана!

Собственно, весь приведенный выше код работает очень хорошо. Моя ошибка была связана с тем, что моя функция:

List<listItem> myFunction()

вернул myArray, следовательно, проблема с преобразованием ... Теперь она исправлена. :)

Спасибо всем за ответы.


person Jodll    schedule 03.04.2012    source источник
comment
Элемент списка - это не то же самое, что список ‹›;)   -  person Yuki Kutsuya    schedule 03.04.2012
comment
Ваша первая строка не будет компилироваться для начала, а сообщение об ошибке предлагает преобразование наоборот. Покажите короткую, но полную программу, демонстрирующую проблему, и дословное сообщение об ошибке.   -  person Jon Skeet    schedule 03.04.2012
comment
Это правильно? Кажется, ваша проблема не имеет ничего общего с вызовом ToArray ().   -  person Ritch Melton    schedule 03.04.2012
comment
Сообщение об ошибке, которое вы опубликовали, относится к преобразованию массива ListItems в List ‹ListItem›, а не наоборот. List ‹ListItem› .ToArray () должен работать отлично. Разместите весь код или все сообщение об ошибке.   -  person SiliconMind    schedule 03.04.2012


Ответы (3)


Это ошибка (как указано Даршеду и Джоном Скитом)

listItem myList = new List<listItem>();

Вы присваиваете значение List элементу listItem.

Замени его на

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

для создания списка listItem. потом

listItem[] myArray = myList.ToArray();

буду работать.

person Gabber    schedule 03.04.2012
comment
Как дать размер? - person GvSharma; 29.06.2017
comment
Чтобы получить размер: myArray.size. Для установки: myArray = new Array[5];, но удаляет старый массив - person Gabber; 29.06.2017

ты пробовал

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

в Java это работает, я не уверен в С #

person Community    schedule 03.04.2012

string[] s = myList.ToArray();

Учитывая, что myList - это список строк

person R.D.    schedule 03.04.2012