Heim > Backend-Entwicklung > C++ > Wie kann ich ein verschachteltes IEnumerable in LINQ reduzieren?

Wie kann ich ein verschachteltes IEnumerable in LINQ reduzieren?

Susan Sarandon
Freigeben: 2025-01-26 15:51:09
Original
938 Leute haben es durchsucht

How Can I Flatten a Nested IEnumerable in LINQ?

Verwendung von LINQ zum Reduzieren verschachtelter IEnumerable

In LINQ stoßen Sie möglicherweise auf verschachtelte IEnumerables, die „abgeflacht“ werden müssen, um ein einzelnes zusammengeführtes IEnumerable zu erhalten. Dieser Abflachungsprozess wird erforderlich, wenn das innere IEnumerable Elemente desselben Typs wie das äußere IEnumerable enthält.

Fallstudie:

Bedenken Sie die bereitgestellten Beispiele:

<code>IEnumerable<List<int>> iList = from number in
    (from no in Method() select no) select number;</code>
Nach dem Login kopieren

In diesem Beispiel stellt iList ein verschachteltes IEnumerable dar, wobei jedes Element selbst eine Liste ist. Das Ziel besteht darin, alle diese verschachtelten Listen zu einer einzigen Liste zusammenzuführen.

Lösung: SelectMany()

LINQ stellt die SelectMany()-Methode bereit, die speziell zum Reduzieren verschachtelter IEnumerable-Sammlungen verwendet wird. Es iteriert über das äußere IEnumerable und projiziert jedes innere Sammlungselement in ein neues IEnumerable.

Um das gewünschte Ergebnis zu erhalten, können Sie SelectMany() wie folgt verwenden:

<code>var result = iList.SelectMany(i => i);</code>
Nach dem Login kopieren

In diesem Code nimmt die SelectMany()-Methode jede in iList enthaltene Liste (dargestellt durch die Variable i) und verkettet die Elemente dieser Liste zu einem neuen, abgeflachten IEnumerable-benannten Ergebnis.

Beispiel:

Mit dieser Reduzierung werden die ursprünglichen verschachtelten Arrays [1,2,3,4] und [5,6,7] zu einem einzigen Array [1,2,3,4,5,6,7] kombiniert. wie erwartet ].

Das obige ist der detaillierte Inhalt vonWie kann ich ein verschachteltes IEnumerable in LINQ 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage