Heim >Backend-Entwicklung >C++ >Wie kann man mit IEnumerable.Intersect() effizient den Schnittpunkt mehrerer Listen in C# finden?
Verwenden Sie IEnumerable.Intersect(), um die Schnittmenge mehrerer Listen in C# effizient zu finden
Im Bereich der Datenanalyse und -verarbeitung ist das Ermitteln der Schnittmenge mehrerer Listen eine sehr häufige Aufgabe. Obwohl es mehrere Möglichkeiten gibt, dieses Problem zu lösen, bietet die Verwendung der Methode IEnumerable.Intersect() eine effiziente Lösung. In diesem Artikel wird erläutert, wie Sie mit dieser Methode die Schnittmenge mehrerer Listen identifizieren und abrufen können.
In C# kann die Methode IEnumerable.Intersect() bei Anwendung auf mehrere Sequenzen verwendet werden, um Elemente abzurufen, die allen Sequenzen gemeinsam sind. Um zu sehen, wie Sie mit dieser Methode die Schnittmenge mehrerer Listen ermitteln, betrachten Sie das folgende Beispiel:
<code class="language-csharp">var list1 = new List<int>() { 1, 2, 3 }; var list2 = new List<int>() { 2, 3, 4 }; var list3 = new List<int>() { 3, 4, 5 }; var listOfLists = new List<List<int>>() { list1, list2, list3 }; // 预期交集为 List<int>() { 3 };</code>
Um den Schnittpunkt dieser Listen mit IEnumerable.Intersect() zu finden, können wir die folgende Methode verwenden:
<code class="language-csharp">var intersection = listOfLists .Skip(1) .Aggregate( new HashSet<int>(listOfLists.First()), (h, e) => { h.IntersectWith(e); return h; } );</code>
In dieser Lösung:
Diese Lösung bietet eine präzise und effiziente Möglichkeit, die Schnittmenge mehrerer Listen mithilfe von IEnumerable.Intersect() zu finden. Es nutzt die Optimierungsfunktionen von HashSet, um doppelte Elemente zu verarbeiten und schnelle Schnittoperationen durchzuführen.
Es ist wichtig zu beachten, dass listOfLists immer mindestens eine Liste enthalten sollte, mit der die Schnittmenge initialisiert wird. Wenn die Liste leer ist, wird eine ArgumentNullException geworfen.
Das obige ist der detaillierte Inhalt vonWie kann man mit IEnumerable.Intersect() effizient den Schnittpunkt mehrerer Listen in C# finden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!