对不起这个奇怪的标题。我想要实现的目标很简单:
IEnumerable<IEnumerable<Foo>> listoflist;
IEnumerable<Foo> combined = listoflist.CombineStuff();
示例:
{{0, 1}, {2, 3}} => {0, 1, 2, 3}
我很肯定有一个Linq表达式......
旁注:列表可能很大。
答案 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()
行