Maison >développement back-end >C++ >Comment puis-je regrouper des objets de personne par PersonID et obtenir des modèles de voitures uniques en utilisant LINQ?

Comment puis-je regrouper des objets de personne par PersonID et obtenir des modèles de voitures uniques en utilisant LINQ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-02-02 00:16:121018parcourir

How Can I Group Person Objects by PersonID and Get Unique Car Models Using LINQ?

Utilisez LINQ pour regrouper PersonID

Dans cet exemple, votre objectif est de regrouper la liste des objets de la personne en fonction de l'attribut PersonID et de récupérer la seule liste de modèles de voitures pour tout le monde. À cette fin, vous pouvez utiliser l'extension groupby fournie par LINQ.

La requête LINQ suivante montre comment regrouper le personID et extraire la liste des voitures associée à tout le monde:

<code class="language-csharp">var results = from p in persons
              group p.car by p.PersonId into g
              select new { PersonId = g.Key, Cars = g.Distinct().ToList() };</code>
Explication:

Créez tous les attributs de voiture en fonction de chaque valeur personnelle unique.
  • Le résultat du regroupement est la séquence d'objets anonymes. group p.car by p.PersonId Les méthodes garantissent que seul le seul modèle de voiture est renvoyé.
  • Distinct() ou, vous pouvez utiliser la recherche pour récupérer efficacement la liste de voitures de personID spécifique:

Utilisation:

<code class="language-csharp">var carsByPersonId = persons.ToLookup(p => p.PersonId, p => p.car);</code>

S'il n'y a pas d'ID de personne désigné dans cette méthode, une séquence vide est renvoyée. Assurez-vous de retourner la seule liste de modèles de voitures.

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