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 sobre “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.

Responder a anonymous Cancelar respuesta

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