Heim >Backend-Entwicklung >C++ >Wie kann LINQ doppelte Objekte in einer C#-Liste effizient zählen und zusammenfassen?
Im Bereich der Datenmanipulation ist es oft notwendig, Daten basierend auf bestimmten Kriterien zu aggregieren. Eine solche Situation entsteht, wenn Sie Duplikate innerhalb einer Objektliste zählen müssen. LINQ (Language Integrated Query) bietet eine elegante Lösung für diese Aufgabe.
var q = from x in inventory group x by x into g let count = g.Count() orderby count descending select new { Count = count, gameName = g.Key.gameName, gameID = g.Key.gameID };
Während diese Abfrage eine Anzahl und liefert Geben Sie für jedes Duplikat einen Namen an, die Spiel-ID wird weggelassen. Um dies zu beheben, müssen wir unseren Ansatz ändern.
var q = from x in inventory group x by x.gameName into g let count = g.Count() orderby count descending select new { Count = count, gameName = g.Key, gameID = g.First().gameID };
Durch Gruppieren der Objekte basierend auf ihrem Spielnamen Eigenschaft, wir aggregieren effektiv Objekte mit demselben Namen.
gameID = g.First().gameID
Da Objekte mit demselben Namen unterschiedliche IDs haben können, verwenden wir First(), um die ID des ersten Objekts in der Gruppe abzurufen. Dadurch wird sichergestellt, dass wir für jeden eindeutigen Spielnamen eine ID haben.
Einkapselung der obigen Logik in ein vollständiges Code-Snippet:
var inventory = new List<game>(); // ... additional code for populating the inventory list var q = from x in inventory group x by x.gameName into g let count = g.Count() orderby count descending select new { Count = count, gameName = g.Key, gameID = g.First().gameID }; // ... additional code for displaying the results
Nun die Abfrage zeigt die Anzahl, den Spielnamen und die Spiel-ID für jeden eindeutigen Spielnamen korrekt an, sortiert nach der höchsten Anzahl an Duplikaten.
Das obige ist der detaillierte Inhalt vonWie kann LINQ doppelte Objekte in einer C#-Liste effizient zählen und zusammenfassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!