Pregunta

Estoy intentando realizar una consulta LINQ simple en la propiedad Columns 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 hacer que DataColumnCollection funcione bien con LINQ?

¿Fue útil?

Solución

¿Qué tal:

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

Otros consejos

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 escrita explícitamente se traduce en una invocación de Cast (IEnumerable) &"; de acuerdo con Enumerable.Cast<TResult> Method artículo de MSDN.

Con la sintaxis del método Linq:

var x = myDataTable.Columns.Cast<DataColumn>().Select(c => c.ColumnName);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top