68 votes

Interrogation de DataColumnCollection avec LINQ

Je suis en train d’exécuter une requête LINQ simple sur la propriété Columns du DataTable :

Cependant, ce que j’obtiens est la suivante :

Une implémentation du modèle requête pour type de source « System.Linq.IQueryable » introuvable. « Select » introuvable. Envisager de spécifier explicitement le type de la variable de portée « c ».

Comment puis-je obtenir la DataColumnCollection de jouer gentil avec LINQ ?

117voto

Dave Markle Points 44637

Que diriez-vous:

 var x = from c in dt.Columns.Cast<DataColumn>()
        select c.ColumnName;
 

13voto

Cobra Points 164

Vous pouvez aussi utiliser:

 var x = from DataColumn c in myDataTable.Columns
        select c.ColumnName
 

Cela va effectivement faire la même chose que le code de Dave: "dans une expression de requête, une variable d'itération explicitement typée se traduit par un appel de Cast (IEnumerable)", selon l'article Enumerable.Cast<TResult> Method MSDN.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X