Flatten List in LINQ

I have a LINQ query which returns IEnumerable<List<int>> but i want to return only List<int> so i want to merge all my record in my IEnumerable<List<int>> to only one array.

Example :

IEnumerable<List<int>> iList = from number in
    (from no in Method() select no) select number;

I want to take all my result IEnumerable<List<int>> to only one List<int>

Hence, from source arrays: [1,2,3,4] and [5,6,7]

I want only one array [1,2,3,4,5,6,7]

Thanks


Solution 1:

Try SelectMany()

var result = iList.SelectMany( i => i );

Solution 2:

With query syntax:

var values =
from inner in outer
from value in inner
select value;

Solution 3:

iList.SelectMany(x => x).ToArray()

Solution 4:

If you have a List<List<int>> k you can do

List<int> flatList= k.SelectMany( v => v).ToList();