Interrogazione di DataColumnCollection con LINQ
-
04-07-2019 - |
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?
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);