Maison >base de données >tutoriel mysql >Comment obtenir efficacement des valeurs distinctes d'un champ spécifique dans LINQ ?

Comment obtenir efficacement des valeurs distinctes d'un champ spécifique dans LINQ ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-28 21:48:111000parcourir

How to Efficiently Get Distinct Values from a Specific Field in LINQ?

Obtention de valeurs distinctes dans LINQ sur la base d'un champ de table

Dans LINQ, l'opérateur distinct est couramment utilisé pour éliminer les enregistrements en double d'une source de données. Cependant, lorsque vous traitez de grands ensembles de données, cela peut devenir inefficace si vous devez uniquement filtrer les résultats en fonction d'un champ spécifique.

Pour résoudre ce problème, considérez la requête suivante :

var query = (from r in table1
orderby r.Text
select r).distinct();

Bien que cette requête triera les résultats en fonction du champ Texte, elle ne garantit pas des résultats distincts uniquement basés sur ce champ.

Pour des résultats vraiment distincts, vous pouvez utiliser ce qui suit approche :

table1.GroupBy(x => x.Text).Select(x => x.FirstOrDefault());

Cette requête regroupe la table par champ Texte, divisant essentiellement l'ensemble de données en groupes plus petits en fonction de valeurs de texte uniques. Par la suite, il sélectionne uniquement la première ligne de chaque groupe, renvoyant efficacement des enregistrements distincts sans nécessiter la surcharge liée au tri de l'ensemble de données.

En utilisant cette approche, vous pouvez récupérer efficacement des valeurs distinctes d'une table tout en vous concentrant uniquement sur le champ souhaité.

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