Heim >Backend-Entwicklung >C++ >Wie kann LINQ Objekte in einer hierarchischen Listenstruktur gruppieren?
Gruppieren Sie Objekte mithilfe von LINQ in hierarchische Listenstrukturen
Angenommen, Sie haben eine Reihe von Objekten mit Eigenschaften, die sie klassifizieren. Stellen Sie sich beispielsweise vor, dass Sie über eine Reihe von Benutzern verfügen, die verschiedenen Gruppen angehören. Um Daten effizient zu organisieren und zu analysieren, möchten Sie möglicherweise Benutzer anhand ihrer Gruppenzuordnungen gruppieren.
In diesem Beispiel haben wir eine Klasse namens User
mit Attributen wie UserID
, UserName
und GroupID
. Nehmen wir an, wir haben eine Liste von Benutzern, die so aussieht:
<code class="language-csharp">List<User> userList = new List<User>(); userList.Add(new User { UserID = 1, UserName = "UserOne", GroupID = 1 }); userList.Add(new User { UserID = 2, UserName = "UserTwo", GroupID = 1 }); userList.Add(new User { UserID = 3, UserName = "UserThree", GroupID = 2 }); userList.Add(new User { UserID = 4, UserName = "UserFour", GroupID = 1 }); userList.Add(new User { UserID = 5, UserName = "UserFive", GroupID = 3 }); userList.Add(new User { UserID = 6, UserName = "UserSix", GroupID = 3 });</code>
Unser Ziel ist es, diese Liste in eine hierarchische Struktur umzuwandeln, die Benutzer gruppiert, die derselben Gruppe angehören. Die gewünschte Ausgabe sieht so aus:
<code>GroupedUserList UserList UserID = 1, UserName = "UserOne", GroupID = 1 UserID = 2, UserName = "UserTwo", GroupID = 1 UserID = 4, UserName = "UserFour", GroupID = 1 UserList UserID = 3, UserName = "UserThree", GroupID = 2 UserList UserID = 5, UserName = "UserFive", GroupID = 3 UserID = 6, UserName = "UserSix", GroupID = 3</code>
Mithilfe der leistungsstarken Aggregationsfunktionen von LINQ können wir diese Gruppierung mithilfe des folgenden Codes erreichen:
<code class="language-csharp">var groupedCustomerList = userList .GroupBy(u => u.GroupID) .Select(grp => grp.ToList()) .ToList();</code>Die
GroupBy
-Methode klassifiziert Benutzer anhand ihrer GroupID
-Attribute. Es generiert eine Sammlung von Gruppen, wobei jede Gruppe ein einzigartiges GroupID
darstellt. Die Select
-Methode wandelt diese Gruppen weiter in Benutzerlisten um, wodurch wir eine hierarchische Struktur erhalten, die Benutzerlisten innerhalb jeder Gruppe verschachtelt.
Durch die Verwendung dieser LINQ-Abfrage können Sie Daten effektiv in sinnvollen Gruppen organisieren und so Ihre Datenanalyse- und -bearbeitungsmöglichkeiten verbessern.
Das obige ist der detaillierte Inhalt vonWie kann LINQ Objekte in einer hierarchischen Listenstruktur gruppieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!