Maison >développement back-end >C++ >Comment LINQ peut-il regrouper des objets dans une structure de liste hiérarchique ?
Regroupez les objets dans des structures de liste hiérarchique à l'aide de LINQ
Supposons que vous ayez un ensemble d'objets qui ont des propriétés qui les classent. Par exemple, imaginez que vous disposez d’un ensemble d’utilisateurs appartenant à différents groupes. Pour organiser et analyser efficacement les données, vous souhaiterez peut-être regrouper les utilisateurs en fonction de leurs associations de groupe.
Dans cet exemple, nous avons une classe appelée User
avec des attributs comprenant UserID
, UserName
et GroupID
. Disons que nous avons une liste d'utilisateurs qui ressemble à ceci :
<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>
Notre objectif est de convertir cette liste en une structure hiérarchique qui regroupe les utilisateurs appartenant à un même groupe. Le résultat souhaité ressemble à :
<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>
Grâce aux puissantes capacités d'agrégation de LINQ, nous pouvons réaliser ce regroupement en utilisant le code suivant :
<code class="language-csharp">var groupedCustomerList = userList .GroupBy(u => u.GroupID) .Select(grp => grp.ToList()) .ToList();</code>La méthode
GroupBy
classe les utilisateurs en fonction de leurs attributs GroupID
. Il génère une collection de groupes, où chaque groupe représente un GroupID
unique. La méthode Select
convertit en outre ces groupes en listes d'utilisateurs, nous donnant une structure hiérarchique qui imbrique les listes d'utilisateurs dans chaque groupe.
En utilisant cette requête LINQ, vous pouvez organiser efficacement les données en groupes significatifs, améliorant ainsi vos capacités d'analyse et de manipulation de données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!