Récupérer les valeurs distinctes datatable à l'aide de linq vb.net
Je suis en train de récupérer toutes les valeurs distinctes d'une colonne dans une table de données. Le nom de la colonne dans la table de données est "le Comte". J'ai 2240 lignes et j'ai 6 valeurs distinctes dans le "Comte" de la colonne. Le problème c'est que quand j'exécute le code suivant, c'est de me donner le nombre de lignes plutôt que les 6 valeurs distinctes.
Dim counts = (From row In loadedData
Select row.Item("Count")).Distinct()
For Each i In counts
MsgBox(i)
Next
Comment puis-je modifier cela pour récupérer les 6 valeurs distinctes, plutôt que de me donner le nombre total de lignes?
- FYI - Les valeurs de cette table sont tous uniques... sauf que le "Comte" de la colonne. Je crois que c'est pourquoi il est de retour le 2240 lignes, au lieu de simplement la 6 le nombre unique de valeurs.
Vous devez vous connecter pour publier un commentaire.
Vous avez juste à sélectionner la colonne et l'utilisation
Enumerable.Distinct
:Dans la syntaxe de la requête(je ne savais pas que même
Distinct
est pris en charge directement dans VB.NET):Linq-To-DataSet
équivalent de votre posté requête sql. Elle renvoie uniquement les comptes distincts de la table. Si le tableau contient 2240 les lignes et lesCount
colonne contient 6 numéros différents(répartis sur toutes les lignes), la requête ne retourne qu'6 numéros différents.Vous pouvez utiliser ToTable(distinct Booléen, ParamArray columnNames Comme une Chaîne de caractères()) méthode pour cela.
Ce sera de retour d'Utilisateurs différents pour vous. Vous pouvez ajouter plusieurs noms de colonne si vous le souhaitez.
Voici la documentation msdn.
https://msdn.microsoft.com/en-us/library/wec2b2e6(v=vs. 110).aspx
vous pouvez également appliquer cette logique, si vous voulez ,
premier type datatable dans columName ,
puis appliquer cette logique