Compartilhar via


let cláusula (Referência de C#)

Em uma expressão de consulta, pode ser útil armazenar o resultado de uma subexpressão para que você possa usá-la em cláusulas posteriores. Use a let palavra-chave para criar uma nova variável de intervalo e inicializá-la com o resultado de uma expressão. Depois de inicializar a variável de intervalo com um valor, você não poderá atribuir outro valor a ela. No entanto, se a variável de intervalo mantiver um tipo queryable, você poderá consultá-la.

A linguagem C# faz referência a documentos da versão mais recentemente lançada da linguagem C#. Ele também contém a documentação inicial para funcionalidades em pré-visualizações públicas para o próximo lançamento do idioma.

A documentação identifica qualquer recurso introduzido pela primeira vez nas três últimas versões do idioma ou nas versões prévias públicas atuais.

Dica

Para descobrir quando um recurso foi introduzido pela primeira vez em C#, consulte o artigo sobre o histórico de versão da linguagem C#.

No exemplo a seguir, let é usado de duas maneiras:

  1. Ele cria um tipo enumerável que você pode consultar.
  2. Ele permite que a consulta chame ToLower apenas uma vez na variável wordde intervalo. Sem usar let, você teria que chamar ToLower cada predicado na 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 também