Heim >Backend-Entwicklung >C++ >Wie kann ich zwei Listen effizient zusammenführen, Duplikate entfernen und die Reihenfolge aufrechterhalten?
In diesem Szenario haben Sie zwei Listen mit Zeichenfolgen (oder einen beliebigen beliebigen Typ) und möchten diese schnell kombinieren und dabei das Original beibehalten Befehl. Darüber hinaus möchten Sie alle doppelten Einträge in der zusammengeführten Liste entfernen. Trotz der Recherche zu diesem Thema haben Sie keine einfache Lösung gefunden und vermeiden lieber die Implementierung komplexer Schnittstellen.
Ein effektiver Ansatz ist die Verwendung der AddRange-Methode:
List<string> a = new List<string>(); List<string> b = new List<string>(); a.AddRange(b);
Dieser Ansatz bewahrt die Reihenfolge von Elemente in beiden Listen und überträgt den Inhalt von b in a. Duplikate werden jedoch nicht entfernt.
Eine alternative Option, die das Duplikatproblem angeht, ist die Union-Methode:
var newList = a.Except(b).ToList();
Diese Zeile kombiniert die Elemente von a und b und schließt etwaige Duplikate aus. Das Ergebnis wird in einer neuen Liste mit dem Namen newList gespeichert.
Wenn Sie schließlich die ursprünglichen Listen beibehalten müssen, können Sie die Concat-Methode verwenden:
var newList = a.Concat(b);
Dieser Vorgang erzeugt ein IEnumerable-Objekt . Es durchläuft beide Listen und liefert der Reihe nach deren Elemente in der Reihenfolge, in der sie erscheinen. Wenn Sie eine Liste als Ausgabe benötigen, können Sie IEnumerable mithilfe der ToList-Methode in eine Liste konvertieren.
Das obige ist der detaillierte Inhalt vonWie kann ich zwei Listen effizient zusammenführen, Duplikate entfernen und die Reihenfolge aufrechterhalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!