C# - 将类型数组转换为通用列表

时间:2009-07-08 08:09:04

标签: c#

代码段:

ShippingPeriod[] arrShippingPeriods;
.
.
.

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

最后一行不会编译,我得到的错误是:

“'ShippingPeriod []'不包含'ToList'的定义,并且最好的扩展方法重载'System.Linq.Enumerable.ToList(System.Collections.Generic.IEnumerable)'有一些无效的参数”

4 个答案:

答案 0 :(得分:11)

试试这个:

ShippingPeriod [] arrShippingPeriods;

//init and populate array

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

您需要在数组对象上调用 ToList ,而不是数组中包含的对象类。

答案 1 :(得分:8)

正如其他人所说,您需要在阵列上调用ToList。您尚未显示ShippingPeriodList是什么。

但是,当你理解这一点时,请注意你不需要提供类型参数,因为类型推断会为你做。换句话说,这应该可以正常工作:

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

答案 2 :(得分:3)

另一种选择是:

ShippingPeriod [] arrShippingPeriods;

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

由于数组已经实现了IEnumerable,因此可以将它传递给List构造函数。

希望这有帮助

答案 3 :(得分:1)

我得到了解决方案!!!

你必须把“使用System.Linq;”在你的班级的标题中,就是这样。 放置它时,数组识别toList()命令。