I would like to be able to fusion an IEnumerable<IEnumerable<T>>
into IEnumerable<T>
(i.e. merge all individual collections into one). The Union
operators only applies to two collections. Any idea?
views:
2007answers:
2
+12
A:
Try
var it = GetTheNestedCase();
return it.SelectMany(x => x);
SelectMany is a LINQ transformation which essentially says "For Each Item in a collection return the elements of a collection". It will turn one element into many (hence SelectMany). It's great for breaking down collections of collections into a flat list.
JaredPar
2008-11-26 16:05:45
A:
var lists = GetTheNestedCase();
return
from list in lists
from element in list
select element;
is another way of doing this using C# 3.0 query expression syntax.
Joe Chung
2009-04-21 21:33:00