Maison >développement back-end >C++ >Comment puis-je utiliser la méthode distincte () de Linq pour obtenir des objets uniques basés sur des propriétés spécifiques?
linq (Enquête sur l'intégration du langage) fournit un outil puissant
pour filtrer et récupérer des éléments uniques de la collection. Cependant, lorsque les attributs de l'objet ne sont pas simples, l'utilisation de peut être délicate. Distinct()
Distinct()
Utilisez différentsin ()
Pour utiliser sur l'attribut de l'objet, vous devez regrouper l'objet en fonction de ces attributs, puis sélectionner un représentant unique dans chaque groupe. Cela peut être implémenté à l'aide de méthodes et
de Linq.
Distinct()
Exemple: Distance basée sur l'attribut ID GroupBy
Select
Pour obtenir une liste de l'objet de personne unique en fonction de l'attribut ID, vous pouvez utiliser le code suivant:
Ce code regroupe d'abord l'objet de la personne en fonction de son attribut ID pour créer un ensemble de groupe. Ensuite, utilisez la méthode pour sélectionner l'objet à la première personne dans chaque groupe et fournissez efficacement une liste unique d'objets de personne en fonction de l'attribut ID.
<code>Person1:Id=1,Name="Test1" Person2:Id=1,Name="Test1" Person3:Id=2,Name="Test2"</code>
distinct
<code class="language-csharp">List<Person> distinctPeople = allPeople .GroupBy(p => p.Id) .Select(g => g.First()) .ToList();</code>
Vous pouvez également utiliser Select
en définissant la clé composite sur plusieurs attributs. Par exemple, pour obtenir la liste d'objets de personne unique basée sur l'ID et les attributs favoritecolor, vous pouvez utiliser le code suivant:
Remarque:
Veuillez noter que certains fournisseurs de requête peuvent ne pas être en mesure d'analyser chaque groupe doit inclure au moins un élément. De plus, la version précédente d'EF Core 6 a besoin d'une petite manière différente. Pour plus de détails, consultez la réponse Stackoverflow fournie. (Il est supposé que le texte d'origine fait référence aux réponses Stackoverflow. Sinon, vous pouvez supprimer cette phrase) Distinct()
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!