Преобразование списка в массив с помощью ToArray () - PullRequest
8 голосов
/ 03 апреля 2012

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

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

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

listItem[] myArray = myList.ToArray();

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

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

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

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

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

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

List<listItem> myFunction()

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

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

Ответы [ 3 ]

13 голосов
/ 03 апреля 2012

Это ошибка (как указано в Darkshadw и Jon Skeet)

listItem myList = new List<listItem>();

Вы присваиваете значение List для listItem.

Замените его на

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

, чтобы создать список listItem.Тогда

listItem[] myArray = myList.ToArray();

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

2 голосов
/ 03 апреля 2012

вы пробовали

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

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

0 голосов
/ 03 апреля 2012
string[] s = myList.ToArray();

Учитывая, что myList является списком строк

...