Heim >Backend-Entwicklung >C++ >Wie kann ich Elemente aus einer Liste entfernen, die in einer anderen Liste in C# vorhanden sind?
Effizientes Entfernen von Elementen aus einer Liste, die in einer anderen vorhanden sind (C#)
Viele Programmieraufgaben erfordern das Entfernen von Elementen aus einer Liste, die auch in einer zweiten Liste erscheinen. Dieser Artikel zeigt zwei effektive Methoden in C#, um dies zu erreichen.
Nutzung der Except
Methode von LINQ
LINQ (Language Integrated Query) bietet eine übersichtliche Lösung mit der Except
-Methode. Diese Methode berechnet die Mengendifferenz zwischen zwei Listen und gibt eine neue Liste zurück, die nur Elemente enthält, die für die erste Liste eindeutig sind. Entscheidend ist, dass bei diesem Ansatz eine Änderung der ursprünglichen Listen vermieden wird.
Hier ist ein Beispiel, das die Verwendung von Except
veranschaulicht:
<code class="language-csharp">List<car> list1 = GetTheList(); List<car> list2 = GetSomeOtherList(); List<car> result = list2.Except(list1).ToList();</code>
Dieses Code-Snippet generiert result
, eine neue Liste mit Elementen aus list2
, die in list1
fehlen. Die ToList()
-Konvertierung ist notwendig, da Except
ein IEnumerable
anstelle eines List
zurückgibt.
Alternative: Direkte Erstellung einer neuen Liste
Ein effizienterer Ansatz besteht darin, direkt eine neue Liste zu erstellen, die nur die gewünschten Elemente enthält:
<code class="language-csharp">List<car> result = GetSomeOtherList().Except(GetTheList()).ToList();</code>
Dadurch wird das gleiche Ergebnis wie im vorherigen Beispiel erzielt, jedoch ohne dass eine temporäre Variable erforderlich ist.
Wichtige Überlegung:
Beide oben vorgestellten Methoden erzeugen eine neue Liste mit den gefilterten Elementen. Die Originallisten (list1
und list2
) bleiben unberührt.
Das obige ist der detaillierte Inhalt vonWie kann ich Elemente aus einer Liste entfernen, die in einer anderen Liste in C# vorhanden sind?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!