Domanda

Ci scusiamo per la strana didascalia. Quello che sto cercando di ottenere è semplice:

IEnumerable<IEnumerable<Foo>> listoflist;
IEnumerable<Foo> combined = listoflist.CombineStuff();

Esempio:

{{0, 1}, {2, 3}} => {0, 1, 2, 3}

Sono sicuro che ci sia un'espressione Linq per questo ...

Sidenote: le liste potrebbero essere grandi.

È stato utile?

Soluzione

Come dice leppie, vuoi Enumerable.SelectMany . La forma più semplice sarebbe:

 combined = listOfList.SelectMany(x => x);

Nelle espressioni di query, SelectMany viene chiamato quando si dispone di più di una clausola da , quindi un'alternativa sarebbe:

 combined = from x in listOfList
            from y in x
            select y;

Altri suggerimenti

  

SelectMany ()

OK

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top