Effiziente Möglichkeit, große Listen zu vergleichen, um Unterschiede zu finden
Die Except
-Methode ist die beste Wahl, wenn es um differenzielle Vergleiche sehr großer generischer Listen geht. Diese Methode ist viel effizienter als die im Artikel bereitgestellte LINQ-Abfrage (Zeitkomplexität beträgt O(N * M)).
Except-Methode verwenden
Die MethodeExcept
gibt eine neue Liste zurück, die Elemente aus der ersten Liste enthält, die in der zweiten Liste nicht vorhanden sind. Verwenden Sie diese Methode mit beiden Listen, um zwei neue Listen zu erhalten:
<code>var firstNotSecond = list1.Except(list2).ToList(); var secondNotFirst = list2.Except(list1).ToList();</code>
Die Zeitkomplexität dieser Methode beträgt O(N M), was deutlich schneller ist als die vorherige Methode.
Ergebnisse zusammenführen
Um festzustellen, ob zwei Listen identisch sind, können Sie die beiden Ergebnislisten zusammenführen:
<code>return !firstNotSecond.Any() && !secondNotFirst.Any();</code>
Hinweise zu sich wiederholenden Elementen
Im Gegensatz zum Originalcode meldet die Except
-Methode doppelte Elemente in der Liste nur einmal. Wenn beispielsweise Liste1 [1, 2, 2, 2, 3] und Liste2 [1] enthält, lautet das Ergebnis von „Elemente in Liste1, aber nicht in Liste2“ bei Verwendung der Except
-Methode [2, 3 ] , während der ursprüngliche Code [2, 2, 2, 3] melden würde.
Das obige ist der detaillierte Inhalt vonWie kann ich umfangreiche Listen effizient vergleichen, um Diskrepanzen zu finden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!