Heim >Backend-Entwicklung >C++ >Wie kann ich LINQ verwenden, um unterschiedliche Objekte basierend auf bestimmten Eigenschaften zu erhalten?

Wie kann ich LINQ verwenden, um unterschiedliche Objekte basierend auf bestimmten Eigenschaften zu erhalten?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-02-02 09:01:10237Durchsuche

How to Use LINQ to Get Distinct Objects Based on Specific Properties?

Verwenden des spezifischen Attributs des LINQ zur Objektliste wird die Anwendung verwendet

Mit Linqs -Methode können Sie sich wiederholende Elemente im Satz beseitigen. Bei der Verarbeitung einer Liste komplexer Objekte, die für die Einzigartigkeit Attribute erforderlich sind.

Lösung: Distinct()

Aus diesem Grund können Sie das Objekt nach den erforderlichen Attributen gruppieren und das erste Element aus jeder Gruppe auswählen. Auf diese Weise erhalten Sie eine Liste, das Objekt in dieser Liste ist für das angegebene Attribut eindeutig. Beispiel:

Betrachten Sie ein Personobjekt mit ID- und Namensattributen:

, um verschiedene Personallisten basierend auf ID -Attributen zu erhalten:

Dies erzeugt eine Liste mit nur Person1 und Person3.
<code>Person1:Id=1,Name="Test1"
Person2:Id=1,Name="Test1"
Person3:Id=2,Name="Test2"</code>

Mehrere Attribute:

<code class="language-csharp">List<Person> distinctPeople = allPeople
  .GroupBy(p => p.Id)
  .Select(g => g.First())
  .ToList();</code>

Wenn Sie nach mehreren Attributen gruppieren müssen, können Sie einen anonymen Typ verwenden:

Hinweis:

Einige Abfrageanbieter müssen möglicherweise
<code class="language-csharp">List<Person> distinctPeople = allPeople
  .GroupBy(p => new { p.Id, p.FavoriteColor })
  .Select(g => g.First())
  .ToList();</code>
anstelle von

verwenden, um sicherzustellen, dass jede Gruppe mindestens ein Element hat. Für kompatible Methoden, die mit LINQ mit Entitäten (EF Core) kompatibel sind

    Das obige ist der detaillierte Inhalt vonWie kann ich LINQ verwenden, um unterschiedliche Objekte basierend auf bestimmten Eigenschaften zu erhalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Stellungnahme:
    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