Introducción a LINQ
En los últimos años ha aumentado la tecnología todo gracias a sistemas inteligentes y la evolución de los lenguajes de programación orientada a objetos. Esto quiere decir que la mayoría de los programadores ya estan familiarizados con los conceptos como clases, objetos,metodos, etc. Microsoft se enfoco en esta gran ventaja y propuso que es un reto poder reducir la complejidad del acceso a la información. Hemos venido utilizando tecnologías para poder tener acceso a nuestra información, los cuales son las bases de datos relacionales y XML. Microsoft crea un proyecto llamado LINQ (Lenguaje Integrado de Consultas)”Language Integrated Query” en donde el enfoque general es facilitar las consultas a fuentes de información y no solo a los datos relacionales o XML, si no que esta vez orientado a objetos. Estas consultas integradas en los lenguajes .NET (Vb,C#) van a definir un conjunto de operadores de consulta estandar el cual nos permiten hacer operaciones de recorrido, filtro y proyecciones en los datos o información que estemos manejando. ¿Cuales son estos operadores de Consulta?
Si checamos el siguiente programa, en donde utilizamos un array de nombres y determinamos mediante una enumeración la consulta que queremos realizar, que sería saber todos los nombres que empiezen con la letra E. Tenemos que nuestros operadores serian : from, where, orderby,select.
using System;
using System.Linq;
using System.Collections.Generic;
class ejemplo1
{
static void Main() {
string[] _nombres = { "Edison", "Daniel", "Edgar","Esperanza", "Alberto", "Jorge","Omar", "David" }; IEnumerable<string> expresion = from nom in _nombres
where nom.StartsWith("E")
orderby nom
select nom;
foreach (string elemento in expresion)
Console.WriteLine(elemento);
Console.ReadLine();
} }
¿Cuales son las características principales de LINQ? LINQ está construido enteramente sobre características de los lenguajes de propósito general, algunas de las cuales son nuevas en C# 3.0 y Visual Basic 9.0. using System;
using System.Linq;
using System.Collections.Generic;
class ejemplo1 {
static void Main() { string[] _nombres = { "Edison", "Daniel", "Edgar","Esperanza", "Alberto", "Jorge","Omar","David" }; Func<string, bool> condicion = nom => nom.StartsWith("E"); Func<string, string> orden = nom => nom;
Func<string, string> seleccion = nom => nom;
IEnumerable<string> expresion = _nombres.Where(condicion)
.OrderBy(orden)
.Select(seleccion);
foreach (string elemento in expresion)
Console.WriteLine(elemento); Console.ReadLine(); } } Checamos que las expresiones lambda tienen la ventaja de ofrecernos una sintaxis más directa y compacta para la escritura.
¿De qué se compone el proyecto de LINQ?
Podemos checar que el Proyecto LINQ se compone de C# 3.0, VB 9.0 y se aplica para Objetos, Base de datos Relacionales, XML. Checaremos más ejemplos:
En este ejemplo lo que hacemos es tener un arreglo de tipo string en donde almaceno cierta cantidad de frutas y mi consulta se almacenara en un grupo de Frutas en donde clasificará a las frutas por la primera letra.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
class Program {
static void Main(string[] args){ string[] frutas = { "manzana", "pera", "sandia", "papaya", "piña", "mango","limon","guayaba","naranja" }; var grupoFrutas = from f in frutas
group f by f[0] into g select new { PrimeraLetra = g.Key, frutas = g };
foreach (var g in grupoFrutas){ Console.WriteLine("Las frutas que empiezan con la letra '{0}':", g.PrimeraLetra); foreach (var f in g.frutas){ Console.WriteLine(f); }
}
Console.ReadLine();
}
Puedes checar más sobre LINQ con estos links: LINQ Project. - http://msdn2.microsoft.com/en-us/netframework/aa904594.aspx
101 Ejemplos .- http://msdn2.microsoft.com/en-us/vcsharp/aa336746.aspx