Maison > développement back-end > C++ > Comment utiliser LINQ pour obtenir des objets distincts en fonction de propriétés spécifiques?

Comment utiliser LINQ pour obtenir des objets distincts en fonction de propriétés spécifiques?

Mary-Kate Olsen
Libérer: 2025-02-02 09:01:10
original
210 Les gens l'ont consulté

How to Use LINQ to Get Distinct Objects Based on Specific Properties?

En utilisant l'attribut spécifique du LINQ à la liste d'objets, l'application est utilisée

La méthode de Linq vous permet d'éliminer les éléments répétitifs de l'ensemble. Cependant, lors du traitement d'une liste d'objets complexes, des attributs sont nécessaires pour l'unicité.

Solution: Distinct()

Pour cette raison, vous pouvez regrouper l'objet en fonction des attributs requis et sélectionner le premier élément de chaque groupe. Cela vous fournira une liste, l'objet de cette liste est unique pour l'attribut spécifié. Exemple:

Considérez l'objet personne avec les attributs d'identification et de nom:

pour obtenir différentes listes de personnel en fonction des attributs d'ID:

Cela générera une liste contenant uniquement Person1 et Person3.
<code>Person1:Id=1,Name="Test1"
Person2:Id=1,Name="Test1"
Person3:Id=2,Name="Test2"</code>
Copier après la connexion

Attributs multiples:

List<Person> distinctPeople = allPeople
  .GroupBy(p => p.Id)
  .Select(g => g.First())
  .ToList();
Copier après la connexion

Si vous avez besoin de vous regrouper en fonction de plusieurs attributs, vous pouvez utiliser un type anonyme:

<事> Remarque:

Certains fournisseurs de requête peuvent avoir besoin d'utiliser
List<Person> distinctPeople = allPeople
  .GroupBy(p => new { p.Id, p.FavoriteColor })
  .Select(g => g.First())
  .ToList();
Copier après la connexion
au lieu de

pour s'assurer que chaque groupe a au moins un élément. Pour les méthodes compatibles compatibles avec LINQ aux entités (EF Core) (avant la 6ème version), veuillez vous référer à cette réponse:

https://www.php.cn/link/7dd21654ce1c39ec763219e71f11
  • FirstOrDefault() First()

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