2011-04-25 34 views
9

Supongamos que mi datatable está llena de datos. Después de llenar los datos, podemos volver a poner alguna condición en datatable con linq para extraer datos.¿Podemos filtrar Datatable con LINQ?

Supongamos que mi datatable tiene un registro de 10 empleados. Entonces, ¿podemos extraer solo aquellos empleados cuyo salario es mayor a 5000 con la consulta de linq? Sé que podemos lograrlo datatable.select(). ¿Cómo se puede lograr esto con linq?

Respuesta

12

, usted puede obtener un conjunto filtrado de filas, sí:

var query = table.AsEnumerable() 
       .Where(row => row.Field<decimal>("salary") > 5000m); 

Este utiliza los AsEnumerable y Field métodos de extensión en DataTableExtensions y DataRowExtensions respectivamente.

2

Prueba esto:

   var query = (from t0 in dtDataTable.AsEnumerable() 
       where t0.Field<string>("FieldName") == Filter 

       select new 
       { 
        FieldName = t0.Field<string>("FieldName"), 
        FieldName2 = t0.Field<string>("FieldName2"), 
       }); 
Cuestiones relacionadas