Heim >Backend-Entwicklung >C++ >Wie kann LINQ Elemente, die für eine Liste eindeutig sind, unter mehreren Listen effizient identifizieren?
Verwenden Sie LINQ, um eindeutige Elemente in einer Liste zu bestimmen
Wir müssen Elemente identifizieren, die nur in einer Liste und nicht in anderen Listen vorhanden sind. LINQ bietet eine nette Lösung für diese Herausforderung.
Bedenken Sie den folgenden Codeausschnitt:
<code class="language-csharp">class Program { static void Main(string[] args) { // 初始化两个Person对象列表。 List<Person> peopleList1 = new List<Person>(); peopleList1.Add(new Person() { ID = 1 }); peopleList1.Add(new Person() { ID = 2 }); peopleList1.Add(new Person() { ID = 3 }); List<Person> peopleList2 = new List<Person>(); peopleList2.Add(new Person() { ID = 1 }); peopleList2.Add(new Person() { ID = 2 }); peopleList2.Add(new Person() { ID = 3 }); peopleList2.Add(new Person() { ID = 4 }); peopleList2.Add(new Person() { ID = 5 }); } } class Person { public int ID { get; set; } }</code>
Angenommen, wir möchten feststellen, welche Personen in peopleList2 nicht in peopleList1 existieren. Dazu können wir die Where()-Methode von LINQ verwenden.
Eine Möglichkeit ist die Verwendung der Any()-Methode:
<code class="language-csharp">var result = peopleList2.Where(p => !peopleList1.Any(p2 => p2.ID == p.ID));</code>
Diese Abfrage überprüft jede Person in peopleList2, um zu sehen, ob es jemanden in peopleList1 mit derselben ID gibt. Wenn keine Übereinstimmung vorliegt, wird die Person in die Ergebnisse einbezogen.
Oder eine prägnantere Art, dieselbe Logik auszudrücken, ist:
<code class="language-csharp">var result = peopleList2.Where(p => peopleList1.All(p2 => p2.ID != p.ID));</code>
In diesem Fall prüft All(), ob sich die ID aller Personen in peopleList1 von der ID der aktuellen Person in peopleList2 unterscheidet. Wenn diese Bedingung zutrifft, wird die Person in die Ergebnisse einbezogen.
Hinweis: Es ist wichtig zu beachten, dass beide Methoden O(n*m)-Operationen ausführen, was bei großen Datensätzen zu Leistungsproblemen führen kann. Zur Optimierung der Leistung sind möglicherweise zusätzliche Methoden erforderlich. Die bereitgestellte LINQ-Syntax bietet eine einfache Lösung für das Problem, es wird jedoch immer empfohlen, sie anhand der Leistungsanforderungen des Projekts zu bewerten.
Das obige ist der detaillierte Inhalt vonWie kann LINQ Elemente, die für eine Liste eindeutig sind, unter mehreren Listen effizient identifizieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!