Please welcome a new LINQ Standard Query Operator

Entre las “pequeñas cosas” que quedan ocultas en la CTP de Visual Studio 2010, eclipsadas por otras más novedosas, cabe destacar la presencia de un nuevo operador de consulta estándar de LINQ llamado Zip, que he encontrado, claro está, “buceando” con el Explorador de objetos. El operador Zip nos permitirá ir recorriendo simultáneamente la secuencia de entrada y una segunda secuencia, mientras ambas tengan elementos, produciendo una secuencia de salida con los elementos obtenidos mediante la aplicación de una función f(x, y) sobre los elementos correspondientes de las dos secuencias originales. Un pequeño ejemplo, como casi siempre, ilustrará mejor la utilidad de este operador:


using System;
using System.Linq;


static class Program
{
    static void Main(string[] args)
    {
        int[] a = { 1, 3, 5, 7, 9 };
        int[] b = { 2, 4, 6, 8 };


        var q = a.Zip(b, (x, y) => x * x + y * y);
        foreach (var n in q)
            Console.WriteLine(n);


        Console.ReadLine();
    }
}


El programa anterior produce en la consola la siguiente salida:


5
25
61
113


La CTP de Visual Studio 2010 está disponible aquí.


Rock tip (un poco forzado, la verdad :-). Como he escrito este post mientras estaba de viaje, pensé en titularlo “One More From the Road“, pensando en este álbum, aunque luego cambié de idea. De la amplísima discografía de ese monster act del rock sureño que es Lynyrd Skynyrd, éste es el disco en directo que recomiendo: además de que fue el último en el que cantó Ronnie Van Zant (EPD), contiene mi versión favorita de ese himno del rock’n’roll que es “Free bird”.


 

Octavio Hernandez

Desarrollador y consultor en tecnologías .NET. Microsoft C# MVP entre 2004 y 2010.

4 comentarios en “Please welcome a new LINQ Standard Query Operator

  1. Me recuerdan las clases de Analisis Matematico por alla en los tiempos de la UH (era Mesozoica).

    Hablando ya del tema, es un operador interesante.
    Gana en legibilidad.

    @

    PD: Gracias por la ayuda de hace 5 dias.
    Me ayudó bastante.

Deja un comentario

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