Obtenir toutes les valeurs d'une colonne à partir d'un DataSet
En C#, est-il possible d'obtenir toutes les valeurs d'une colonne particulière de toutes les lignes d'un jeu de données avec des instructions simples (pas de LINQ, pas Pour cicle)?
OriginalL'auteur Nelson Reis | 2009-07-03
Vous devez vous connecter pour publier un commentaire.
Seulement par itération sur les lignes, comme Utaal indiqué dans cette réponse.
Vous pourriez penser que le
DataTable.DefaultView.RowFilter
serait soutien de groupement, mais il ne le fait pas (elle offre surtout l'équivalent de la fonctionnalité d'unWhere
clause, avec une certaine base, agrégations - mais pas un simple regroupement).OriginalL'auteur Jeff Sternal
Pourquoi Pas LINQ? Pour les gens qui arrivent ici sans la même restriction, voici trois façons de le faire, le bas deux fois à l'aide de LINQ.
C#
VB
D'utiliser le
AsEnumerable
méthode sur unDataTable
, vous devez avoir une Référence à System.Les données.DataSetExtensions auxquels s'ajoutent les Les méthodes d'extension LINQ. Sinon, vous pouvez juste lancer laRows
propriété de laDataTable
typeDataRow
(vous n'avez pas à le faire avec la syntaxe de la Requête, car il jette automatiquement pour vous).OriginalL'auteur KyleMit
Autant que je sache, il n'y a pas de moyen direct d'obtenir de ceux-ci; mais la boucle for est assez simple et, évidemment, ne sera pas plus de ressources que n'importe quoi d'autre.
OriginalL'auteur Utaal
En plus de Utaal réponse, vous pouvez éventuellement remplir un nouvel objet DataTable avec les résultats d'une requête qui sélectionne une seule colonne à partir de votre source de données d'origine, en supposant que c'est un SGBDR. Cela a l'avantage de vous laisser spécifier des choses qui sont faciles à exprimer dans le code, mais facile à exprimer en SQL comme
DISTINCT
requêtes.OriginalL'auteur Welbog