Heim > Backend-Entwicklung > C++ > Wie kann ich Lambda -Ausdrücke verwenden, um in .NET unterschiedliche Werte zu erhalten?

Wie kann ich Lambda -Ausdrücke verwenden, um in .NET unterschiedliche Werte zu erhalten?

Linda Hamilton
Freigeben: 2025-01-25 23:06:10
Original
842 Leute haben es durchsucht

How Can I Use Lambda Expressions to Get Distinct Values in .NET?

effizient identifizierende eindeutige Werte in .NET mit Lambda -Ausdrücken

identifizieren

Das Extrahieren einzigartiger Elemente aus einer Sammlung ist ein häufiger Programmierbedarf. Die LINQ -Bibliothek von .NET bietet dafür die Distinct() -Methode, aber ihre Einschränkungen werden im Umgang mit benutzerdefinierten Objekten erkennbar, die bestimmte Gleichstellungsvergleiche erfordern. Während Distinct() ein IEqualityComparer akzeptiert, wird die direkte Verwendung von Lambda -Ausdrücken für diesen Vergleich nicht nativ unterstützt.

Ein prägnanter Ansatz mit IEqualityComparer

Eine Lösung besteht darin, ein IEqualityComparer inline:

zu erstellen
var distinctValues = myCustomerList.Distinct(
    EqualityComparer<Customer>.Create((c1, c2) => c1.CustomerId == c2.CustomerId)
);
Nach dem Login kopieren

Diese Methode kann zwar funktional, aber etwas umständlich anfühlen.

Alternative: Nebel GroupBy und Select

Eine elegantere Alternative umgeht die Notwendigkeit eines expliziten IEqualityComparer. Dieser Ansatz verwendet GroupBy und Select:

IEnumerable<Customer> filteredList = originalList
  .GroupBy(customer => customer.CustomerId)
  .Select(group => group.First());
Nach dem Login kopieren

Diese gruppieren Elemente basierend auf dem angegebenen Schlüssel (CustomerId in diesem Fall) und wählt dann das erste Element aus jeder Gruppe aus, wodurch Duplikate effektiv herausgefiltert werden. Dies liefert eine sauberere und lesbarere Lösung, um unterschiedliche Werte mithilfe von Lambda -Ausdrücken zu erreichen.

Das obige ist der detaillierte Inhalt vonWie kann ich Lambda -Ausdrücke verwenden, um in .NET unterschiedliche Werte zu erhalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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