如何减少IEnumerable <ienumerable <foo>&gt;到IEnumerable <foo>?</foo> </ienumerable <foo>

时间:2009-10-21 11:44:13

标签: c# linq ienumerable

对不起这个奇怪的标题。我想要实现的目标很简单:

IEnumerable<IEnumerable<Foo>> listoflist;
IEnumerable<Foo> combined = listoflist.CombineStuff();

示例:

{{0, 1}, {2, 3}} => {0, 1, 2, 3}

我很肯定有一个Linq表达式......

旁注:列表可能很大。

2 个答案:

答案 0 :(得分:14)

正如leppie所说,你想要Enumerable.SelectMany。最简单的形式是:

 combined = listOfList.SelectMany(x => x);

在查询表达式中,如果您有多个SelectMany子句,则会调用from,因此可以选择:

 combined = from x in listOfList
            from y in x
            select y;

答案 1 :(得分:2)

  

的SelectMany()