【问题标题】:Convert IEnumerable<IEnumerable<T>> to List<List<T>>将 IEnumerable<IEnumerable<T>> 转换为 List<List<T>>
【发布时间】:2012-02-24 20:35:23
【问题描述】:

如何将IEnumerable&lt;IEnumerable&lt;T&gt;&gt; 转换为List&lt;List&lt;T&gt;&gt;

【问题讨论】:

    标签: c# linq generics


    【解决方案1】:

    这个怎么样...

    IEnumerable<IEnumerable<int>> input = ...
    List<List<int>> nestedList = input.Select(i => i.ToList()).ToList();
    

    【讨论】:

      【解决方案2】:

      使用 List(IEnumerable) 构造函数和 Linq 的组合:

      List<List<T>> DoIt<T>(IEnumerable<IEnumerable<T>> items)
      {
          return new List<List<T>>(items.Select((x) => x.ToList()));
      }
      

      【讨论】:

        【解决方案3】:

        可能是这样的:

        var test2 = test.ToList().ConvertAll(x => x.ToList());
        

        【讨论】:

          【解决方案4】:

          您可能想要考虑为什么您要尝试这样做。如果是因为您有一个 LINQ 查询返回的可枚举,然后您想通过索引来引用,那么 LINQ 可能不是生成您想要的数据结构的最合适的方法。也许您应该使用返回列表而不是枚举的方法进行重构。

          【讨论】:

            猜你喜欢
            • 2021-12-02
            • 1970-01-01
            • 2018-08-04
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多