2011-01-19 16 views
13

¿Es posible concatenar una List<List<T>> en un List<T> con una sola operación de una manera que no es horrible lenta, es decir:listas Concatenate con LINQ

List<List<int>> listOfLists = new List<List<int>>(); 
List<int> concatenatedList = listOfLists.Something... 

?

+2

Esto se conoce como aplanamiento, no concatenación. – leppie

+2

En realidad, se llama concatenación, http://msdn.microsoft.com/en-us/library/ee353462.aspx. – Batibix

+0

Para aplanar una lista de listas, puede concatenarlas. – bitbonk

Respuesta

25
listOfLists.SelectMany(l => l); 

línea completa:

List<int> concatenatedList = listOfLists.SelectMany(l => l).ToList(); 
0

Algo como esto:

listOfLists.Aggregate(new int[0], (res, list) => res.Concat(list));