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.
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.
dtUsuarios.AsEnumerable()
.Where(usuario => usuario.Field("Edad") > 18);
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...
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
Esto nos regresa una variable de tipo IEnumerable
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
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
&& usuario.Field
ne...
Comentarios
Publicar un comentario