Heim >Backend-Entwicklung >C++ >Wie kann LINQ Objekte in einer hierarchischen Listenstruktur gruppieren?

Wie kann LINQ Objekte in einer hierarchischen Listenstruktur gruppieren?

Linda Hamilton
Linda HamiltonOriginal
2025-01-13 11:49:44493Durchsuche

How Can LINQ Group Objects into a Hierarchical List Structure?

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!

Stellungnahme:
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