Utilizzare il metodo LINQ SelectMany:
IEnumerable<IEnumerable<string>> myOuterList = // some IEnumerable<IEnumerable<string>>...
IEnumerable<String> allMyStrings = myOuterList.SelectMany(sl => sl);
Per essere molto chiari su ciò che sta succedendo qui (in quanto io odio il pensiero di gente che pensa questo è una sorta di stregoneria, e mi sento male che alcune altre persone cancellato la stessa risposta):
SelectMany è un (un metodo statico extension method che attraverso zucchero sintattico si presenta come un metodo di istanza su un tipo specifico) su IEnumerable<T>
. Prende la tua enumerazione originale di enumerazioni e una funzione per convertire ogni elemento di esso in un'enumerazione.
Poiché gli elementi sono già enumerazioni, la funzione di conversione viene semplice- solo restituire l'ingresso (sl => sl
significa "rimessa paremeter denominato sl
e restituirlo"). SelectMany fornisce quindi un'enumerazione su ciascuno di questi a sua volta, con conseguente vostra lista "appiattita" ..
fonte
2012-08-14 18:05:07
['Enumerable.SelectMany'] (http://msdn.microsoft.com/en-US/library/bb534336.aspx) –