Maison > développement back-end > C++ > Comment l'opérateur Groupby de Linq peut-il agréger efficacement les objets en fonction des valeurs de propriété partagées?

Comment l'opérateur Groupby de Linq peut-il agréger efficacement les objets en fonction des valeurs de propriété partagées?

Susan Sarandon
Libérer: 2025-02-02 00:26:09
original
244 Les gens l'ont consulté

How Can LINQ's GroupBy Operator Efficiently Aggregate Objects Based on Shared Property Values?

Utilisation efficace de l'opérateur Linq Groupby à agréger par la valeur d'attribut partagée

Dans la programmation orientée objet, la situation de plusieurs objets partageant des attributs spécifiques est courante. Par exemple, la classe "Person" contient "ID" et la liste de voitures. Afin d'agréger clairement et efficacement une voiture associée à chaque ID unique, nous pouvons utiliser l'opérateur "GroupBy" de Linq.

Linq Groupby Operating Caractor

L'opérateur GroupBY divise la séquence d'objets en un groupe plus petit en fonction de la valeur de la clé spécifiée. Dans notre catégorie "Person", nous pouvons utiliser la propriété "PersonID" comme clé des objets de groupe. Cela créera efficacement une structure similaire à un dictionnaire, où la clé est la seule valeur "personID", et la valeur est une liste de valeurs "voiture" associées à chaque "personID".

Exemple de code

Afin de regrouper l'objet "personne" et de récupérer la liste de voitures correspondante selon "PersonID", nous pouvons utiliser l'expression de requête Linq suivante:

ou, nous pouvons utiliser des expressions non de requête pour obtenir les mêmes résultats:

var results = from p in persons
              group p.car by p.PersonId into g
              select new { PersonId = g.Key, Cars = g.ToList() };
Copier après la connexion
<<> Résultats

var results = persons.GroupBy(
    p => p.PersonId, 
    p => p.car,
    (key, g) => new { PersonId = key, Cars = g.ToList() });
Copier après la connexion
"Résultats" Les variables contiendront désormais une collection d'un objet anonyme, qui a deux attributs:

"PersonID": le seul identifiant d'une personne

"CARS": La liste de toute la voiture appartenant à la personne

  • Par itération de la collection "Résultats", nous pouvons obtenir les informations requises de chaque "PersonID" unique.
  • Autres considérations

Afin d'être cohérent avec l'accord de dénomination.

La comparaison du comparatif

ou, vous pouvez utiliser la méthode "de recherche" au lieu de "groupby" pour obtenir des résultats similaires. "Lookup" crée efficacement une structure de dictionnaire, où la clé est la seule valeur "personID", et la valeur est une collection de valeurs "voiture" associées à chaque "personID". Pour utiliser la "recherche" pour récupérer la voiture de la voiture, nous pouvons utiliser la syntaxe suivante:

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