Let de Linq – Declarando variables dentro de nuestra consulta

En ocasiones dentro de nuestras consultas Linq necesitamos almacenar el resultado de una operación matemática o la comparación de una cadena, etc. Para ello podemos usar la palabra clave let, ésta nos creará una nueva variable de rango dentro de la consulta y la inicializará con el resultado de la expresión que le asignemos.

Ejemplo, supongamos que recuperamos una lista de precios y tenemos un interés variable que aplicarle a estos y además el resultado de nuestra consulta deberá mostrar solo los precios que con dicho interés sean inferiores a $800, con linq esto es muy sencillo:

double[] precios = { 500, 300, 450, 250 };
double interes = 2.5;
var valores =
from prc in precios
 let precioInteres = prc * interes
 where precioInteres <= 800
 select new { prc, precioInteres };
 Console.WriteLine(“Totales inferiores a $800″);
 foreach (var valor in valores)
 {
                Console.WriteLine(“Precio sin interés: {0} – Con Interes: {1}”, valor.prc, valor.precioInteres);
}

Como podemos notar hemos declarado una variable de rango nueva con la que podemos trabajar y haciendo uso de los tipos anónimos creamos un objeto con las propiedades prc y precioInteres.

Sin embargo estas variables de rango declaradas con let tienen una insignificante limitación (comparada con lo útiles que son) y es que una vez después de inicializadas no se pueden reasignar, pero si podemos crear más variables de rango a partir de ellas.

Espero les sea de utilidad.

Hasta el próximo post.

Anuncios
Let de Linq – Declarando variables dentro de nuestra consulta

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s