Comment puis-je obtenir la liste des id de type int à l'aide de LINQ
J'ai un DataTable, dire pdt, dans mon code. Je veux juste sélectionner tous les table["id"]
et remplir ensuite dans un tableau d'entiers.
Je peux aller de l'avant avec un foreach
mais je suis en train d'apprendre les expressions Lambda.
Je ne peux pas comprendre comment faire face à cela.
J'ai essayé
List<int> Ids = pdt.Select(row => row["Id"]; return Convert.ToInt32(r));
et
int[] Ids = pdt.Select(row => row["Id"]);
mais rien ne semble fonctionner. Je suis assez sûr que c'est une question de base, d'aider un débutant s'il vous plaît.
- De nos jours, vous pouvez faire comme
var ids = yourObject.Select(x =>x.Id).ToList();
Vous devez vous connecter pour publier un commentaire.
Si vous voulez un tableau, vous devez utiliser le
ToArray()
méthode d'extension... mais vous aussi souhaitez utiliser leDataTableExtensions.AsEnumerable()
méthode d'extension pour faire le tableau de données fortement typé en termes deDataRow
séquence:EDIT: Comme indiqué dans abatishchev réponse, une alternative à la conversion explicite ici serait d'utiliser la
le Champ<T>
méthode d'extension (enDataRowExtenions
):Utilisation de type sécurisé appel:
Id
champ de chaque ligne dans une datatable. En particulier, je ne crois pas que votre code fonctionne, étant donné que tout ce que nous savons de l'entrée est de lapdt
variabler
est introduit comme une expression lambda paramètre.AsEnumerable()
+Select()
est ce que l'OP besoins