Heim > Backend-Entwicklung > C++ > Wie kann ich zwei umfangreiche Listen effizient auf Unterschiede in C# vergleichen?

Wie kann ich zwei umfangreiche Listen effizient auf Unterschiede in C# vergleichen?

Mary-Kate Olsen
Freigeben: 2025-01-14 21:16:46
Original
799 Leute haben es durchsucht

How Can I Efficiently Compare Two Massive Lists for Differences in C#?

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 Methode

Except() 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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage