Question

J'essaie d'effectuer une requête LINQ simple sur la propriété Columns d'un DataTable:

from c in myDataTable.Columns.AsQueryable()
    select c.ColumnName

Cependant, voici ce que j’obtiens:

  

Impossible de trouver une implémentation du motif de requête pour le type de source 'System.Linq.IQueryable'. 'Sélectionnez' non trouvé. Pensez explicitement à spécifier le type de la variable d’intervalle 'c'.

Comment obtenir que DataColumnCollection soit bien joué avec LINQ?

Était-ce utile?

La solution

Que diriez-vous de:

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

Autres conseils

Vous pouvez également 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 le Enumerable.Cast<TResult> Method Article MSDN.

Avec la méthode Linq Syntaxe:

var x = myDataTable.Columns.Cast<DataColumn>().Select(c => c.ColumnName);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top