let (Cláusula, 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 hacer esto con la palabra clave let, que crea una variable de rango y la inicializa con el resultado de la expresión que proporcione. Una vez inicializado con un valor, la variable de intervalo no se puede usar para almacenar otro valor. En cambio, si la variable de rango contiene un tipo consultable, se puede consultar.

Ejemplo

En el siguiente ejemplo, se usa let de dos maneras:

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

  2. Para habilitar la consulta para que llame a ToLower solo una vez en la variable de rango word. Sin usar 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);
        }
    }
}
/* 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