Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En una expresión de consulta, a veces resulta útil almacenar el resultado de una subexpresión para usarlo en cláusulas posteriores. Puede hacerlo con la let palabra clave , que crea una nueva variable de rango e inicializa con el resultado de la expresión que se proporciona. Una vez inicializado con un valor, la variable de intervalo no se puede usar para almacenar otro valor. Sin embargo, si la variable de intervalo contiene un tipo consultable, se puede consultar.
Ejemplo
En el ejemplo let siguiente se usa de dos maneras:
Para crear un tipo enumerable que se pueda consultar.
Para permitir que la consulta llame
ToLowersolo una vez a la variablewordde intervalo . Sin usarlet, tendría que llamarToLowera en cada predicado de lawherecláusula .
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($"\"{v}\" starts with a vowel");
}
}
}
/* 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
*/