【发布时间】:2012-02-24 20:35:23
【问题描述】:
如何将IEnumerable<IEnumerable<T>> 转换为List<List<T>>?
【问题讨论】:
如何将IEnumerable<IEnumerable<T>> 转换为List<List<T>>?
【问题讨论】:
这个怎么样...
IEnumerable<IEnumerable<int>> input = ...
List<List<int>> nestedList = input.Select(i => i.ToList()).ToList();
【讨论】:
使用 List(IEnumerable) 构造函数和 Linq 的组合:
List<List<T>> DoIt<T>(IEnumerable<IEnumerable<T>> items)
{
return new List<List<T>>(items.Select((x) => x.ToList()));
}
【讨论】:
可能是这样的:
var test2 = test.ToList().ConvertAll(x => x.ToList());
【讨论】:
您可能想要考虑为什么您要尝试这样做。如果是因为您有一个 LINQ 查询返回的可枚举,然后您想通过索引来引用,那么 LINQ 可能不是生成您想要的数据结构的最合适的方法。也许您应该使用返回列表而不是枚举的方法进行重构。
【讨论】: