将 IEnumerable<IEnumerable<T>> 转换为 List<List<T>>

5

我该如何将一个 IEnumerable<IEnumerable<T>> 转换成一个 List<List<T>>

4个回答

12

这个怎么样?…

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

5
使用 List(IEnumerable) 构造函数和 Linq 的组合:
List<List<T>> DoIt<T>(IEnumerable<IEnumerable<T>> items)
{
    return new List<List<T>>(items.Select((x) => x.ToList()));
}

4
也许可以这样做:
var test2 = test.ToList().ConvertAll(x => x.ToList());

2

你可能需要思考为什么要这样做。如果是因为你有一个由LINQ查询返回的可枚举的可枚举对象,然后想通过索引引用它们,那么也许使用LINQ并不是生成所需数据结构的最合适方式。也许你应该重构方法,使其返回列表而不是可枚举对象。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接