【问题标题】:C# - Convert a Type Array to a Generic ListC# - 将类型数组转换为通用列表
【发布时间】:2009-07-08 08:09:03
【问题描述】:

代码片段:

ShippingPeriod[] arrShippingPeriods;
.
.
.

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

最后一行无法编译,我得到的错误是:

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

【问题讨论】:

    标签: c#


    【解决方案1】:

    试试这个:

    ShippingPeriod [] arrShippingPeriods;
    
    //init and populate array
    
    IList<ShippingPeriods> lstShippingPeriods = 
                      arrShippingPeriods.ToList<ShippingPeriods>();
    

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

    【讨论】:

    • 我一定是高了什么的,不知道我怎么想不通。非常感谢……它现在对我有用。
    • 不需要指定类型 ShippingPeriods。写arrShippingPeriods.ToList();就够了
    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

      另一种选择是:

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

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

      希望对你有帮助

      【讨论】:

      • 我看不出这样做有什么好处 - 你必须明确指定类型参数,而且它在查询中不会流畅。
      • 这只是另一种选择,很高兴有其他选择 ;-)
      • 好处是这个解决方案也可以在 .NET 2.0 上运行。
      【解决方案4】:

      我找到了解决方案!!!

      你必须把“使用 System.Linq;”在你的类的标题中,就是这样。 当你输入它时,数组会识别 toList() 命令。

      【讨论】:

      • 您的解决方案是针对不同的问题。
      猜你喜欢
      • 2011-02-01
      • 2011-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多