Maison > développement back-end > C++ > Comment regrouper les objets de personne par ID et récupérer les noms de voitures associées dans LINQ?

Comment regrouper les objets de personne par ID et récupérer les noms de voitures associées dans LINQ?

Linda Hamilton
Libérer: 2025-02-02 00:06:10
original
296 Les gens l'ont consulté

How to Group Person Objects by ID and Retrieve Associated Car Names in LINQ?

Grouvant efficacement des objets de personne et récupérant les noms de voiture avec Linq

Cet exemple montre comment regrouper une collection d'objets Person par leurs PersonId et récupérer les noms de voitures associés à l'aide de méthodes GroupBy ou ToLookup de Linq. Supposons que vous avez une liste d'objets Person, chacun avec une propriété PersonId et une car. L'objectif est de regrouper les personnes avec le même PersonId et d'obtenir une liste de voitures pour chaque groupe.

La méthode GroupBy fournit un moyen concis pour réaliser ce groupe:

var results = persons.GroupBy(p => p.PersonId)
                     .Select(g => new { PersonId = g.Key, Cars = g.Select(p => p.car).ToList() });
Copier après la connexion

Ce code regroupe d'abord la liste persons par la propriété PersonId. Ensuite, pour chaque groupe (g), il crée un objet anonyme contenant le PersonId (g.Key) et une liste de noms de voiture (g.Select(p => p.car).ToList()).

Alternativement, la méthode ToLookup crée une structure de recherche, similaire à un dictionnaire, offrant un accès efficace basé sur les clés:

var carsByPersonId = persons.ToLookup(p => p.PersonId, p => p.car);
Copier après la connexion

Accéder aux voitures pour un personId spécifique est alors très simple:

var carsForPerson = carsByPersonId[personId].ToList(); // Convert to List if needed
Copier après la connexion

Les deux approches regroupent efficacement les données, permettant une récupération facile et une manipulation des noms de voitures associés à chaque PersonId. Choisissez la méthode qui convient le mieux à vos besoins et à votre style de codage; ToLookup peut être préférable si vous prévoyez des recherches fréquentes de PersonId.

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal