Sélection d'enregistrements distincts en fonction d'un seul champ dans LINQ
Lorsque vous travaillez avec des données dans LINQ, il peut être nécessaire de filtrer les enregistrements en double , garantissant que seules les valeurs uniques sont renvoyées. Cependant, au lieu d'éliminer des lignes entières dupliquées, il peut être souhaitable d'effectuer cette opération en fonction d'un champ ou d'une propriété spécifique.
Requête distincte de base
La requête LINQ suivante montre une manière simple d'utiliser la méthode Distinct() pour éliminer les lignes en double :
var query = (from r in table1 orderby r.Text select r).Distinct();
Cette requête récupère toutes les lignes du table1 triée par le champ Texte, puis supprime tous les doublons de l'ensemble résultant.
Distinct sur un champ spécifique
Mais que se passe-t-il si l'objectif est de renvoyer uniquement les lignes où un un champ particulier, tel que Texte, contient des valeurs uniques ? Pour y parvenir, une option consiste à utiliser la méthode GroupBy() suivie de la méthode Select() :
table1.GroupBy(x => x.Text).Select(x => x.FirstOrDefault());
Dans cette requête, la table1 est d'abord regroupée par le champ Texte, créant des groupes pour chaque unique Valeur du texte. Ensuite, pour chaque groupe, la méthode FirstOrDefault() est utilisée pour sélectionner la première ligne. Le résultat est une collection de lignes où le champ Texte contient des valeurs distinctes.
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!