Consultando DataColumnCollection com LINQ
-
04-07-2019 - |
Pergunta
Eu estou tentando executar uma consulta LINQ simples na propriedade colunas de uma DataTable:
from c in myDataTable.Columns.AsQueryable()
select c.ColumnName
No entanto, o que eu recebo é o seguinte:
Não foi possível encontrar uma implementação do padrão de consulta para o tipo de fonte 'System.Linq.IQueryable'. 'Select' não foi encontrado. Considere especificar explicitamente o tipo da variável gama 'c'.
Como posso obter o DataColumnCollection para jogar bonito com o LINQ?
Solução
Como sobre: ??
var x = from c in dt.Columns.Cast<DataColumn>()
select c.ColumnName;
Outras dicas
Você também pode usar:
var x = from DataColumn c in myDataTable.Columns
select c.ColumnName
Ele vai efetivamente fazer o mesmo que o código do Dave: "em uma expressão de consulta, uma variável de iteração explicitamente digitado traduz a uma invocação de Elenco (IEnumerable)", de acordo com o Enumerable.Cast<TResult> Method
artigo MSDN.
Com Linq Método Sintaxe:
var x = myDataTable.Columns.Cast<DataColumn>().Select(c => c.ColumnName);