c# - Consultando DataColumnCollection con LINQ
datatable asqueryable (3)
Estoy tratando de realizar una consulta LINQ simple en la propiedad Columnas de una DataTable:
from c in myDataTable.Columns.AsQueryable()
select c.ColumnName
Sin embargo, lo que obtengo es esto:
No se pudo encontrar una implementación del patrón de consulta para el tipo de fuente ''System.Linq.IQueryable''. ''Seleccionar'' no encontrado. Considere especificar explícitamente el tipo de la variable de rango ''c''.
¿Cómo puedo obtener el DataColumnCollection para jugar bien con LINQ?
Con la sintaxis del método Linq:
var x = myDataTable.Columns.Cast<DataColumn>().Select(c => c.ColumnName);
Qué tal si:
var x = from c in dt.Columns.Cast<DataColumn>()
select c.ColumnName;
También puedes usar:
var x = from DataColumn c in myDataTable.Columns
select c.ColumnName
Efectivamente hará lo mismo que el código de Dave: "en una expresión de consulta, una variable de iteración explícitamente tipeada se traduce a una invocación de Cast (IEnumerable)", de acuerdo con el artículo Enumerable.Cast<TResult> Method
MSDN.