Novedades VS 2008 – LINQ

El presente post está dedicado a mostrarles una de las novedades más importantes a mi criterio que presenta el nuevo Visual Studio 2008. Estoy hablando de Lenguaje Integrado de Consultas o Consultas integradas en los lenguajes, más conocida como LINQ (Language Integrated Query).
Esta nueva funcionalidad permite mayores facilidades de consulta y procesamiento de a todo tipo de fuentes de datos y no sólo a BD relacionales y XML.
LINQ permite que las expresiones de consulta se beneficien de los metadatos ricos, verificación de sintaxis en tiempo de compilación, tipado estático y ayuda IntelliSense que antes estaban disponibles solo para el código imperativo.
LINQ en los lenguajes .NET define un conjunto de operadores de consulta estándar de propósito general que hacen posible que las operaciones de recorrido, filtro y proyección sean expresadas de una manera directa pero declarativa en cualquier lenguaje de programación. Los operadores de consulta estándar permiten aplicar las consultas a cualquier fuente de información basada en IEnumerable.

Para ver algunos ejemplos simples que muestre el potencial de esta nueva funcionalidad se puede mencionar que hasta ahora para buscar algo dentro de un List genérico o un Array List debíamos hacer un IndexOf, sacar en un int el índice y leer esa posición. Ahora haciendo un simple select podemos sacarnos n filas que cumplan n condiciones. Lo propio sucede con datos XML, para sacar algo de un XML debíamos leer todo el documento e ir comparando, pero ya no. Lanzamos contra él una consulta LINQ y listo, ya tenemos lo que queríamos.

En el siguiente ejemplo veremos cómo utilizar LINQ para obtener determinados datos desde un array en una aplicación de consola.

using System;
using System.Query;
using System.Collections.Generic;

class linq_app {
static void Main() {
string[] nombres = { "Carlos", "Pedro", "Juan", "María", "Esteban", "Jorge", "David" };
IEnumerable expr = from s in nombres
where s.Length == 5
orderby s
select s.ToUpper();

foreach (string item in expr)
Console.WriteLine(item);
}
}

Al ejecutar este código obtendremos el siguiente resultado:
David
Jorge
María
Pedro


Si ud. está familiarizado con las sentencias SQL, podrá notar la gran similitud entre una consulta en este lenguaje y el código anterior. A continuación explicaré cada una de las partes de la consulta.

From : variable que accederá a las campos del array en éste caso.
In : lista o array a utilizar como fuente de datos.
Where : filtros o condiciones de la consulta.
Select : campos de la lista o array que deseamos obtener. A diferencia de SQL se ubica al final de la sentencia.

Espero les haya sido de utilidad esta breve introducción a esta nueva funcionalidad del Framework 3.0 .Net. Espero sus comentarios y acotaciones al respecto. Saludos!

0 comentarios: