Busqueda local

Loading

viernes, 18 de febrero de 2011

LINQ

En post previos he hablado del LINQ, aun que fue muy superficial, porque cuando lo escribí, di por sentado que quien leyera el post, debía conocer LINQ. Sin embargo, algunos amigos que han leído mi Blog, me han comentado que no siempre es así.
Así que vamos por partes.

Que necesito para entender LINQ?

Voy a enumerar las características o conceptos que debemos entender para poder hacer consultas con LINQ. Los que ya he tratado en algún post, tendrán un enlace para poder visitar el tema a detalle.
 

Métodos de extensión.

Estos métodos nos permiten agregar nuestros propios métodos a tipos ya existentes, sin tener que derivar o recompilar, o tener que modificar el código original.
Son un tipo especial de método que es llamado como si fuera parte de la clase instanciada del tipo para el cual fue creado el método de extensión. Los métodos extendidos más famosos los podemos encontrar en LINQ, y le añaden funcionalidad extra a IEnumerable y a IEnumerable<T>.
 

Inicializadores de Objetos.

Desde la versión 3.0 de C# se introdujo un atajo en la forma de inicializar un objeto. El cual nos permite crear una instancia y asignar los valores a sus propiedades en una sola declaración.
enemigo
De esta forma cuando creamos la instancia, el intellisense nos presentara las propiedades que podemos inicializar.
Aun que parecer algo muy trivial, la repercusión en LINQ es muy importante, ya que nos permite crear instancias de objetos como resultado de la consulta.
 

Inicializadores de Colecciones.

De la misma forma que con el punto anterior, en las colecciones podemos realizar la inicialización de los elementos de la colección usando el atajo, antes mencionado.
matones

Variable local implícita.

Al declarar una variable escribimos la palabra var, en vez del tipo de dato de forma explicita. Esto nos libera de la necesidad de duplicar la declaración del tipo de dato, al escribir el código. Pero esto no quiere decir que la variable que creamos no tenga ningún tipo; en realidad es tipificada, lo que sucede es que el tipo se infiere a partir de la expresión a la derecha del signo igual. Y el tipo se asigna en tiempo de compilación.
varimplicita
Como podemos ver si colocamos nuestro mouse sobre la palabra var, VS nos presenta un tooltip, donde identifica el tipo de nuestra variable, aun que nosotros no lo hayamos escrito.
vartipo

Tipos anónimos.

Estos tipos nos ofrecen una funcionalidad un tanto más interesante ya que podemos crear una variable a partir de una estructura de datos que no requiere ser declarada, y que tampoco se asignara el tipo en tiempo de compilación.
anonimo
Si llevamos a cabo el mismo proceso que con los implícitos, podremos verificar que el tooltip, nos indica que se trata de un tipo de datos anónimo.
anonimo2

Expresiones Lambdas.

Una expresión Lambda tiene la habilidad de manejar eventos en la misma línea de código, asignando un bloque de código directamente a un evento usando métodos anónimos. Las lambdas son una forma muy concisa de crear métodos anónimos.
Aprender a emplearlas, nos permite simplificar nuestro código en .NET.
 

Consultas

Todo esto nos permite crear consultas usando la sintaxis de LINQ. En este momento hay dos formas de escribir consultas usando LINQ:
Expresiones de lenguaje
sintaxis1
Métodos de extensión
sintaxis2
Espero que les sea de utilidad a todos aquellos que desean aprender a usar LINQ.

No hay comentarios:

Publicar un comentario