Compartir vía


cláusula let (Referencia de C#)

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:

  1. Para crear un tipo enumerable que se pueda consultar.

  2. Para permitir que la consulta llame ToLower solo una vez a la variable wordde intervalo . Sin usar let, tendría que llamar ToLower a en cada predicado de la where clá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
*/

Consulte también