转换IEnumerable <ienumerable <t>&gt;列出<list <t>&gt; </list <t> </ienumerable <t>

时间:2012-02-02 06:33:42

标签: c# linq generics

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

4 个答案:

答案 0 :(得分:12)

这个怎么样......

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

答案 1 :(得分:5)

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

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

答案 2 :(得分:4)

可能是这样的:

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

答案 3 :(得分:2)

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