Heim > Backend-Entwicklung > C++ > Wie kann ich die chinesische () -Methode von LINQ für bestimmte Objekteigenschaften verwenden?

Wie kann ich die chinesische () -Methode von LINQ für bestimmte Objekteigenschaften verwenden?

Barbara Streisand
Freigeben: 2025-02-02 09:16:08
Original
318 Leute haben es durchsucht

How Can I Use LINQ's Distinct() Method on Specific Object Properties?

Verwenden von Linqs chinesisch () für eindeutige Objekteigenschaften

lINQs Distinct() -Methode entfernt effizient doppelte Elemente aus einer Sequenz. Sie müssen jedoch häufig die Einzigartigkeit auf der Grundlage bestimmter Objekteigenschaften und nicht auf dem gesamten Objekt identifizieren.

Beispiel: Eindeutige Personen basierend auf ID

Nehmen wir an, Sie haben eine Person -Klasse mit einer Id Eigenschaft. Um eine Liste einzigartiger Personen basierend auf ihren IDs zu erhalten, gruppieren Sie die Liste nach Id und wählen Sie die erste Person aus jeder Gruppe aus:

List<Person> distinctPeople = allPeople
    .GroupBy(p => p.Id)
    .Select(g => g.First())
    .ToList();
Nach dem Login kopieren

Handhabung mehrerer Eigenschaften

Um die Einzigartigkeit über mehrere Eigenschaften hinweg (z. B. Id und FavoriteColor) zu gewährleisten, erstellen Sie einen anonymen Typ als Gruppierungsschlüssel:

List<Person> distinctPeople = allPeople
    .GroupBy(p => new { p.Id, p.FavoriteColor })
    .Select(g => g.First())
    .ToList();
Nach dem Login kopieren

Wichtiger Hinweis: Kompatibilität für Abfrageanbieter

Einige Abfrageanbieter (wie ältere Versionen des Entity Framework Core) können Ausnahmen werfen, wenn eine Gruppe leer ist. Ersetzen Sie in solchen Fällen First() durch FirstOrDefault(). Wenn FirstOrDefault() null zurückgibt, müssen Sie diese Möglichkeit in Ihrem Code verarbeiten.

EF CORE (Pre-Version 6) Lösung

Für EF -Kernversionen vor 6 ist ein robusterer Ansatz erforderlich, um potenzielle leere Gruppen zu bewältigen. Eine detaillierte Lösung finden Sie in dieser Antwort über den Stapelüberlauf: https://www.php.cn/link/7dd21654ce1c39ec7632D219E8E71F11 Dies liefert eine Methode, bei der Fälle anmutig behandelt werden, bei denen eine Eigenschaftskombination keine Objekte enthält.

Das obige ist der detaillierte Inhalt vonWie kann ich die chinesische () -Methode von LINQ für bestimmte Objekteigenschaften verwenden?. 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