sábado, 8 de abril de 2017

Filtrar un DataTable utilizando Linq

Ahora veremos como filtrar la información de un DataTable utilizando Linq.

Para nuestro ejemplo tendremos un DataTable llamado dtUsuarios que tiene tres columnas: Nombre, Edad y Sexo.

Ejemplo 1. Obtiene el listado de hombres

Para utilizar Linq sobre un DataTable primero tendremos que convertirlo en una colección de DataRows de la siguiente manera:
dtUsuarios.AsEnumerable()

Posteriormente utilizamos expresiones lambda para filtrar los datos:
dtUsuarios.AsEnumerable()
.Where(usuario => usuario.Field("Sexo").Equals("H"));

Esto nos regresa una variable de tipo IEnumerable la cual contiene el arreglo de DataRow que cumplen la condición.

Ejemplo 2. Obtener el listado de alumnos mayores a 18 años

De forma similar, podemos buscar utilizando operadores mayor que, menor que, igual que, etc. :
dtUsuarios.AsEnumerable()
.Where(usuario => usuario.Field("Edad") > 18);


Ejemplo 3. Obtener el listado de alumnos llamados Guadalupe y que sean mujer

También podemos utilizar varios operandos dentro de la misma condición:
dtUsuarios.AsEnumerable()
.Where(usuario => usuario.Field("Nombre").Equals("Guadalupe")
&& usuario.Field("Sexo").Equals("M"));

ne...

No hay comentarios:

Publicar un comentario