Compartir a través de


let cláusula (Referencia de C#)

En una expresión de consulta, puede ser útil almacenar el resultado de una subexpresión para poder usarlo en cláusulas posteriores. Use la let palabra clave para crear una nueva variable de rango e inicializarla con el resultado de una expresión. Después de inicializar la variable de intervalo con un valor, no se puede asignar otro valor. Sin embargo, si la variable de intervalo contiene un tipo consultable, puede consultarla.

La documentación de referencia del lenguaje C# cubre la versión más reciente publicada del lenguaje C#. También contiene documentación inicial sobre las características de las versiones preliminares públicas de la próxima versión del lenguaje.

La documentación identifica cualquier característica introducida por primera vez en las últimas tres versiones del idioma o en las versiones preliminares públicas actuales.

Sugerencia

Para buscar cuándo se introdujo por primera vez una característica en C#, consulte el artículo sobre el historial de versiones del lenguaje C#.

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

  1. Crea un tipo enumerable que se puede consultar.
  2. Permite 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