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

5 Answers

Try SelectMany()

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

With query syntax:

var values =
from inner in outer
from value in inner
select value;
4
iList.SelectMany(x => x).ToArray()
4

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

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

Like this?

var iList = Method().SelectMany(n => n);
0

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

You Might Also Like