Heim > Backend-Entwicklung > C++ > Wie kann ich mit LINQ doppelte Objekte nach ID-Eigenschaft zählen und sortieren?

Wie kann ich mit LINQ doppelte Objekte nach ID-Eigenschaft zählen und sortieren?

Patricia Arquette
Freigeben: 2025-01-03 20:25:40
Original
270 Leute haben es durchsucht

How Can I Count and Sort Duplicate Objects by ID Property Using LINQ?

Duplikate nach Eigenschaft mit LINQ zählen

In diesem Szenario haben Sie eine Liste von Objekten mit einer ID-Eigenschaft. Ziel ist es, Objekte anhand ihrer IDs zu zählen und zu gruppieren und die Ergebnisse sortiert anzuzeigen, wobei das Objekt mit der höchsten Anzahl ganz oben steht.

Gruppierung nach ID

LINQ bietet die Operation „Gruppieren nach“ zum Gruppieren von Objekten basierend auf einer angegebenen Eigenschaft. In Ihrem Fall möchten Sie nach der ID-Eigenschaft gruppieren. So können Sie dies erreichen:

var grouped = items.GroupBy(item => item.ID);
Nach dem Login kopieren

Nach der Gruppierung erhalten Sie eine Sammlung von Gruppen, wobei jede Gruppe Objekte mit derselben ID darstellt.

Elemente zählen in Gruppen

Mit den erstellten Gruppen können Sie die Methode „Count()“ verwenden, um die Anzahl der Objekte in jeder Gruppe zu zählen. Das Ergebnis ist eine Sammlung von Schlüssel-Wert-Paaren, wobei der Schlüssel die ID und der Wert die Anzahl ist.

var counted = grouped.Select(group => new { ID = group.Key, Count = group.Count() });
Nach dem Login kopieren

Sortierung nach Anzahl

Endlich Um die Ergebnisse in absteigender Reihenfolge nach Anzahl zu sortieren, können Sie „OrderByDescending()“ verwenden. Methode.

var sorted = counted.OrderByDescending(pair => pair.Count);
Nach dem Login kopieren

Kombinieren der Ergebnisse in einer neuen Liste

Um die Ergebnisse im gewünschten Format anzuzeigen, müssen Sie eine neue Liste von Objekten erstellen, die die enthalten ID, Anzahl und Spielname. Sie können eine Kombination aus Eigenschaften und Projektion verwenden, um dies zu erreichen:

var results = sorted.Select(pair => new { ID = pair.ID, Count = pair.Count, GameName = items.First(item => item.ID == pair.ID).GameName });
Nach dem Login kopieren

Dadurch erhalten Sie eine Liste von Objekten mit den erforderlichen Eigenschaften.

Durch Befolgen dieser Schritte können Sie Duplikate zählen basierend auf der ID-Eigenschaft und sortieren Sie die Ergebnisse nach Anzahl mit LINQ.

Das obige ist der detaillierte Inhalt vonWie kann ich mit LINQ doppelte Objekte nach ID-Eigenschaft zählen und sortieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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