How to merge a collection of collections in Linq

Solution 1:

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.

Solution 2:

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.