Heim >Backend-Entwicklung >C++ >Wie kann ich ein verschachteltes IEnumerable in LINQ reduzieren?
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>
In diesem Beispiel stellt iList ein verschachteltes IEnumerable dar, wobei jedes Element selbst eine Liste ist
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>
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!