Maison >développement back-end >C++ >Comment utiliser LINQ pour obtenir des objets distincts en fonction de propriétés spécifiques?
La méthode
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>
Attributs multiples:
<code class="language-csharp">List<Person> distinctPeople = allPeople .GroupBy(p => p.Id) .Select(g => g.First()) .ToList();</code>
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
<code class="language-csharp">List<Person> distinctPeople = allPeople .GroupBy(p => new { p.Id, p.FavoriteColor }) .Select(g => g.First()) .ToList();</code>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/7dd21654ce1c39ec763219e71f11FirstOrDefault()
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!