Heim >Backend-Entwicklung >C++ >Wie kann ich zwei umfangreiche Listen effizient auf Unterschiede in C# vergleichen?
Strategien zum effizienten Vergleich von Unterschieden in großen Listen
Der Vergleich von Unterschieden kann bei der Arbeit mit großen Listen sehr ressourcenintensiv sein. Obwohl die Contains()
-Methode von LINQ eine gängige Praxis ist, ist sie für große Datensätze ineffizient. Eine bessere Lösung ist die Verwendung der Methode Except()
.
Verwenden Sie die Except()-Methode
Die MethodeExcept()
funktioniert auf IEnumerable
und findet Elemente, die in einer Liste vorhanden sind, in einer anderen jedoch nicht. Indem wir Except()
auf beide Listen anwenden, erhalten wir zwei neue Listen:
firstNotSecond
: Enthält Elemente, die in der ersten Liste enthalten sind, aber in der zweiten Liste fehlen. secondNotFirst
: Enthält Elemente aus der zweiten Liste, die in der ersten Liste fehlen. Diese Methode ist viel schneller als die Verwendung der Contains()
-Prüfung. Zum Beispiel:
<code class="language-csharp">var firstNotSecond = list1.Except(list2).ToList(); var secondNotFirst = list2.Except(list1).ToList();</code>
Ergebnisse zusammengeführt
Auf Wunsch können die Ergebnisse zu einer einzigen Aussage zusammengefasst werden:
<code class="language-csharp">return !firstNotSecond.Any() && !secondNotFirst.Any();</code>
Diese Anweisung ergibt true
, wenn die beiden Eingabelisten genau die gleichen Elemente enthalten, andernfalls false
.
Hinweise zu sich wiederholenden Elementen
Es ist erwähnenswert, dass die Methode Except()
wiederholte Elemente anders behandelt als die Methode Contains()
. Im Originalcode wurden mehrfach doppelte Elemente in der ersten Liste gemeldet, die in der zweiten Liste nicht vorhanden waren. Allerdings meldet Except()
jedes wiederholte Element nur einmal. Dieser Unterschied sollte bei der Verwendung dieser Lösung berücksichtigt werden.
Das obige ist der detaillierte Inhalt vonWie kann ich zwei umfangreiche Listen effizient auf Unterschiede in C# vergleichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!