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

Comment LINQ peut-il regrouper une liste d'objets dans des listes imbriquées ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-13 11:35:43621parcourir

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

Regrouper la liste d'objets en listes imbriquées à l'aide de LINQ

Une organisation efficace des données est cruciale dans le domaine de la programmation. LINQ fournit un mécanisme puissant pour regrouper des objets en fonction de conditions spécifiques. Cet article va résoudre un problème courant : regrouper une liste d'objets dans une nouvelle liste contenant des listes imbriquées.

Considérez la définition de classe suivante :

<code>public class User
{
    public int UserID { get; set; }
    public string UserName { get; set; }
    public int GroupID { get; set; }
}</code>

Afin de regrouper les utilisateurs en fonction de leur GroupID, nous pouvons utiliser le code suivant :

<code>var groupedCustomerList = userList
    .GroupBy(u => u.GroupID)
    .Select(grp => grp.ToList())
    .ToList();</code>

Interprétation du code :

  1. GroupBy : cette clause divise la liste d'utilisateurs d'origine en plusieurs groupes en fonction de l'attribut GroupID.
  2. Sélectionner : Il convertit ensuite chaque résultat (c'est-à-dire un ensemble d'utilisateurs avec le même GroupID) en une liste d'utilisateurs.
  3. ToList : Enfin, le résultat est converti en une nouvelle liste de listes imbriquées, chaque liste imbriquée contenant des utilisateurs du même groupe.

Cette expression LINQ regroupe intelligemment la liste originale des utilisateurs par GroupID, en les présentant de manière organisée. Chaque liste imbriquée dans le résultat final représente un groupe d'utilisateurs partageant le même GroupID.

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