2009-07-08 3 views
3

фрагмент кода:C# - Преобразование типа массив в общий список

ShippingPeriod[] arrShippingPeriods; 
. 
. 
. 

List<ShippingPeriod> shippingPeriods = ShippingPeriodList.ToList<ShippingPeriod>(); 

Последняя строка не будет компилировать и ошибка, я получаю:

«„ShippingPeriod []“не содержит определение для «ToList» и лучшей перегрузки методы расширения «System.Linq.Enumerable.ToList (System.Collections.Generic.IEnumerable)» имеют некоторые недопустимые аргументы»

ответ

11

попробовать это:

ShippingPeriod [] arrShippingPeriods; 

//init and populate array 

IList<ShippingPeriods> lstShippingPeriods = 
        arrShippingPeriods.ToList<ShippingPeriods>(); 

Вы должны позвонить ToList на объект массива, а не класс объектов, содержащийся в массиве.

+1

Должно быть, я был высоким или что-то еще, не знаю, как я не мог понять это. Большое спасибо ... это работает для меня сейчас. – 2009-07-13 03:52:33

+2

Знаменитый Кумар? Конечно, вы были высокими! –

3

Другой вариант:

ShippingPeriod [] arrShippingPeriods; 

var lstShippingPerios=new List<ShippingPeriod>(arrShippingPeriods); 

Поскольку массивы уже реализовать IEnumerable, вы можете передать его в конструктор List.

Надеется, что это помогает

+0

Я не вижу никакой пользы в этом - вам нужно явно указать аргумент типа, и он не будет плавно проходить в запросе. –

+0

Это еще один вариант, неплохо иметь альтернативы ;-) – Valentin

+4

Преимущество в том, что это решение будет работать и на .NET 2.0. –

8

Как уже говорила другим, вам нужно вызвать ToList в массиве. Вы не показали, что такое ShippingPeriodList.

Однако, если вы правильно это понимаете, обратите внимание, что вам не нужно указывать аргумент типа, поскольку вывод типа сделает это за вас. Другими словами, это должно работать нормально:

List<ShippingPeriod> list = arrShippingPeriods.ToList(); 
0

У меня есть решение !!!

Вы должны поставить «using System.Linq;» в заголовке вашего класса, и это все. Когда вы добавляете это, массив распознает команду toList().

+1

Ваше решение для другой проблемы. – interjay

Смежные вопросы