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 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() });
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);
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 });
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!