代码段:
ShippingPeriod[] arrShippingPeriods;
.
.
.
List<ShippingPeriod> shippingPeriods = ShippingPeriodList.ToList<ShippingPeriod>();
最后一行不会编译,我得到的错误是:
“'ShippingPeriod []'不包含'ToList'的定义,并且最好的扩展方法重载'System.Linq.Enumerable.ToList(System.Collections.Generic.IEnumerable)'有一些无效的参数”
答案 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()命令。