Verwenden Sie LINQ, um verschachtelte Listen zu reduzieren
Beim Umgang mit verschachtelten Listen in LINQ ist es manchmal notwendig, mehrere Listen in eine einzige abgeflachte Liste umzuwandeln. Dies kann mit der Methode SelectMany()
erreicht werden.
Szene:
Betrachten Sie die folgende LINQ-Abfrage, die eine verschachtelte Liste von Ganzzahlen zurückgibt:
<code class="language-csharp">IEnumerable<List<int>> iList = (from number in (from no in Method() select no) select number).ToList();</code>
Wenn Sie eine einzelne Liste ausgeben müssen, die alle Elemente in der verschachtelten Liste enthält, können Sie die Abfrage wie folgt ändern:
<code class="language-csharp">var result = iList.SelectMany(i => i);</code>
SelectMany()
nimmt jedes Element der Eingabesequenz (in diesem Fall jede Liste) und projiziert es in eine neue Sequenz. Durch Angabe des Parameters i
wird jedes Element der verschachtelten Liste zu einem neuen Element in der Ausgabesequenz.
Beispiel:
Für die Quelllisten [1, 2, 3, 4] und [5, 6, 7] erzeugt die geänderte Abfrage die folgende abgeflachte Liste:
<code>[1, 2, 3, 4, 5, 6, 7]</code>
Mit der Methode SelectMany()
können Sie also eine verschachtelte Liste von Ganzzahlen in eine einzelne abgeflachte Liste in LINQ konvertieren.
Das obige ist der detaillierte Inhalt vonWie kann ich eine verschachtelte Liste in LINQ mit SelectMany() reduzieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!