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.

  •   Expresiones lambda y árboles de expresión

     Las expresiones lambda ofrecen a los desarrolladores una manera conveniente para poder escribir funciones que puedan ser pasadas como argumentos, hagamos de cuenta que las expresiones lambda son similares a los delegados del CLR.

     

    Retomando el mismo ejemplo anterior agregaremos expresiones lambda:

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?

linq00

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

 

 

2 comentarios en “Introducción a LINQ”

  1. en hora buena mi estimado edison, felicidades por la nueva chamba ak en geeks, a ver si luego invitas a postear.

    sobre el articulo de intro muy bien, nos escribimos luego

  2. Excelente trabajo Edision, te felicito por la gran habilidad de síntesis y forma de entregar contenido de calidad. No por nada estás calificado como de los mejores socios de Microsoft.

    Saludos, un gran abrazo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *