Olá pessoal, tudo bom?
Não é possível fazer uma consulta LINQ diretamente sobre a coleção Rows do DataTable, porque o DataRowCollection não implementa IEnumerable<T>, nesse caso, é necessário usar o método AsEnumerable() do DataTable conforme exemplo abaixo:
protected void btnObter_Click(object sender, EventArgs e)
{
SacadoDAOExemplo dados = new SacadoDAOExemplo();
DataTable dt = dados.Obter(); //Método que retorna um DataTable de exemplo
//Aplicando a consulta LINQ
var resultado = from item in dt.AsEnumerable()
where item.Field<int>("sac_id") > 2
select item;
//Varrendo o resultado
foreach (var r in resultado)
Response.Write(r.Field<string>("sac_nome") + "<br />");
//* sac_id e sac_nome são colunas da tabela que está vindo como retorno no DataTable
}
AsEnumerable() retorna IEnumerable<DataRow> o que torna possível a aplicação de uma consulta LINQ.
Grande abraço,
Eduardo Henrique Rizo
[twitter-follow screen_name=’eduardorizo’ show_count=’yes’]