let (Cláusula, Referencia de C#)
Actualización: noviembre 2007
En una expresión de consulta, a veces resulta útil almacenar el resultado de una subexpresión para utilizarlo en cláusulas posteriores. Para ello, puede utilizar la palabra clave let, que crea una nueva variable de rango y la inicializa con el resultado de la expresión que proporcione. Al inicializarse con un valor, la variable de rango no puede utilizarse para almacenar otro valor. Sin embargo, si la variable de rango contiene un tipo que se puede consultar, puede realizarse una consulta en ésta.
Ejemplo
En el ejemplo siguiente, let se utiliza de dos formas:
Para crear un tipo enumerable que se puede consultar.
Para habilitar que la consulta llame a ToLower sólo una vez en la variable de rango word. Si no utiliza let, tendría que llamar a ToLower en cada predicado de la cláusula where.
class LetSample1
{
static void Main()
{
string[] strings =
{
"A penny saved is a penny earned.",
"The early bird catches the worm.",
"The pen is mightier than the sword."
};
// Split the sentence into an array of words
// and select those whose first letter is a vowel.
var earlyBirdQuery =
from sentence in strings
let words = sentence.Split(' ')
from word in words
let w = word.ToLower()
where w[0] == 'a' || w[0] == 'e'
|| w[0] == 'i' || w[0] == 'o'
|| w[0] == 'u'
select word;
// Execute the query.
foreach (var v in earlyBirdQuery)
{
Console.WriteLine("\"{0}\" starts with a vowel", v);
}
// Keep the console window open in debug mode.
Console.WriteLine("Press any key to exit.");
Console.ReadKey();
}
}
/* Output:
"A" starts with a vowel
"is" starts with a vowel
"a" starts with a vowel
"earned." starts with a vowel
"early" starts with a vowel
"is" starts with a vowel
*/
Vea también
Tareas
Cómo: Controlar excepciones con expresiones de consultas (Guía de programación de C#)
Conceptos
Expresiones de consultas con LINQ (Guía de programación de C#)