Maison >développement back-end >C++ >Comment LINQ peut-il regrouper efficacement une liste d'objets dans une liste de listes ?

Comment LINQ peut-il regrouper efficacement une liste d'objets dans une liste de listes ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-13 10:29:43285parcourir

How Can LINQ Efficiently Group a List of Objects into a List of Lists?

Regrouper les objets dans une liste de listes à l'aide de LINQ

Lorsqu'il s'agit de structures de données complexes, une gestion et une organisation efficaces des données sont cruciales. La puissante bibliothèque LINQ en C# permet une manipulation de données concise et efficace. Cette question explore un scénario spécifique dans lequel une liste d'objets doit être regroupée en fonction d'un champ spécifique, ce qui entraîne une nouvelle liste de listes.

L'extrait de code fourni montre une classe appelée User qui possède les propriétés UserID, UserName et GroupID. Création d'un exemple de liste d'utilisateurs avec différents ID de groupe. L'objectif est d'utiliser LINQ pour regrouper ces utilisateurs par leur association de groupe.

L'approche originale utilisait GroupBy pour y parvenir, mais se heurtait au problème du retour d'une liste de clés. Pour résoudre ce problème, la méthode doit être légèrement modifiée. Le code suivant démontre l'implémentation correcte :

<code class="language-csharp">var groupedCustomerList = userList
    .GroupBy(u => u.GroupID)
    .Select(grp => grp.ToList())
    .ToList();</code>
  1. GroupBy : La méthode GroupBy s'applique à userList. Il parcourt la liste, regroupant les utilisateurs en utilisant la propriété GroupID comme clé.
  2. Sélectionner : Le résultat de GroupBy est une séquence de groupes, où chaque groupe représente un utilisateur avec le même GroupID. La méthode Select est utilisée pour convertir chaque groupe en une nouvelle Liste.
  3. ToList : L'appel final ToList convertit la séquence de listes de groupes en une véritable List>.

Cette méthode regroupe efficacement les utilisateurs par GroupID, produisant une liste hiérarchique de listes. Chaque liste externe représente un groupe et chaque liste interne contient des utilisateurs appartenant à ce groupe. Cette structure permet un accès et une manipulation faciles des données utilisateur groupé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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn