Duplikate in Objektlisten mit LINQ zählen
Bei der Arbeit mit Listen komplexer Objekte kann das Zählen von Duplikaten eine häufige Anforderung sein. Mit LINQ (Language Integrated Query) können Sie Objekte basierend auf einer gemeinsamen Eigenschaft effizient gruppieren und die Anzahl jedes Duplikats abrufen.
Hier finden Sie eine Schritt-für-Schritt-Anleitung, wie Sie dies erreichen:
-
Nach Eigenschaft gruppieren: Verwenden Sie den GroupBy-Operator, um Objekte nach der gewünschten Eigenschaft zu gruppieren. Im bereitgestellten Beispiel möchten wir Duplikate basierend auf der Eigenschaft „ID“ zählen, sodass wir schreiben können:
var groupedIDs = items.GroupBy(item => item.ID);
Nach dem Login kopieren
-
Duplikate zählen: Für jede Gruppe Wenn ein erstelltes Objekt erstellt wurde, verwenden Sie den Count-Operator, um die Anzahl der Duplikate zu bestimmen Vorkommen.
var duplicateCounts = groupedIDs.Select(group => new { ID = group.Key, Count = group.Count() });
Nach dem Login kopieren
-
Ergebnisse sortieren: Standardmäßig werden die Ergebnisse in willkürlicher Reihenfolge gruppiert. Um nach der höchsten Anzahl an Duplikaten zu sortieren, verwenden Sie den OrderByDescending-Operator:
var sortedDuplicates = duplicateCounts.OrderByDescending(x => x.Count);
Nach dem Login kopieren
-
Ausgewählte Daten abrufen: Wenn Sie sowohl die Anzahl als auch das Originalobjekt benötigen, Sie können eine Projektion im Select-Operator verwenden, um eine benutzerdefinierte zu erstellen Ergebnis:
var result = sortedDuplicates.Select(x => new { Count = x.Count, Object = x.ID });
Nach dem Login kopieren
-
An Datenquelle binden: Sobald Sie die Duplikatzahlen haben, können Sie sie zur Anzeige oder weiteren Verarbeitung an eine Datenquelle binden. In Ihrem Fall würde dies bei Verwendung von ListView etwa so aussehen:
lvRelatedGames.DataSource = result;
lvRelatedGames.DataBind();
Nach dem Login kopieren
Zusätzliche Überlegungen:
- Wenn Objekte darin unterschiedliche Eigenschaften haben Für jede Duplikatgruppe müssen Sie möglicherweise einen benutzerdefinierten Vergleicher verwenden, um sicherzustellen, dass Objekte anhand bestimmter Kriterien als Duplikate betrachtet werden.
- Der bereitgestellte Code dient dazu Dies kann ein Ausgangspunkt sein, und Sie müssen ihn möglicherweise entsprechend Ihren spezifischen Anforderungen und Ihrer Datenstruktur anpassen.
Das obige ist der detaillierte Inhalt vonWie kann ich Duplikate in Objektlisten mithilfe von LINQ effizient zählen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!