Domanda

Sto cercando di eseguire una semplice query LINQ sulla proprietà Columns di una DataTable:

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

Tuttavia, quello che ottengo è questo:

  

Impossibile trovare un'implementazione del modello di query per il tipo di origine 'System.Linq.IQueryable'. 'Seleziona' non trovato. Prendi in considerazione di specificare in modo esplicito il tipo della variabile di intervallo 'c'.

Come posso ottenere che DataColumnCollection funzioni correttamente con LINQ?

È stato utile?

Soluzione

Che ne dici di:

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

Altri suggerimenti

Puoi anche usare:

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

Farà effettivamente lo stesso del codice di Dave: " in un'espressione di query, una variabile di iterazione esplicitamente tipizzata si traduce in una chiamata di Cast (IEnumerable) " ;, secondo Enumerable.Cast<TResult> Method articolo MSDN.

Con la sintassi del metodo Linq:

var x = myDataTable.Columns.Cast<DataColumn>().Select(c => c.ColumnName);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top