Dans Linq, l'opérateur distinct offre un moyen simple d'éliminer les enregistrements en double d'une table. Cependant, par défaut, il compare les enregistrements entiers, pas seulement des champs spécifiques.
Lorsque vous avez l'intention de filtrer les enregistrements en double sur la base uniquement d'un seul champ, tel que r.Text dans votre exemple, une approche modifiée est requise. .
En utilisant la requête que vous avez fournie :
var query = (from r in table1 orderby r.Text select r).distinct();
évitera les doublons, mais en fonction du contenu combiné de tous les champs, pas seulement r.Text.
Pour obtenir le résultat souhaité, considérez la requête suivante :
table1.GroupBy(x => x.Text).Select(x => x.FirstOrDefault());
Cette requête regroupera la table1 par le champ Texte en utilisant GroupBy. Au sein de chaque groupe, il sélectionne le premier élément à l'aide de FirstOrDefault(). La collection résultante contiendra des lignes où le champ Texte est 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!