Heim > Backend-Entwicklung > C++ > Wie kann ich eine verschachtelte Liste in LINQ mit SelectMany() reduzieren?

Wie kann ich eine verschachtelte Liste in LINQ mit SelectMany() reduzieren?

DDD
Freigeben: 2025-01-26 15:42:11
Original
458 Leute haben es durchsucht

How Can I Flatten a Nested List in LINQ Using SelectMany()?

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren
Die Methode

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage