Condividi tramite


let clausola (Riferimenti per C#)

In un'espressione di query può essere utile archiviare il risultato di una sottoespressione in modo da poterlo usare nelle clausole successive. Usare la let parola chiave per creare una nuova variabile di intervallo e inizializzarla con il risultato di un'espressione. Dopo aver inizializzato la variabile di intervallo con un valore, non è possibile assegnarlo a un altro valore. Tuttavia, se la variabile di intervallo contiene un tipo queryable, è possibile eseguirne una query.

Il riferimento al linguaggio C# documenta la versione rilasciata più di recente del linguaggio C#. Contiene anche la documentazione iniziale per le funzionalità nelle versioni di anteprima pubblica per la prossima versione del linguaggio di programmazione.

La documentazione identifica tutte le funzionalità introdotte nelle ultime tre versioni della lingua o nelle anteprime pubbliche correnti.

Suggerimento

Per trovare quando una funzionalità è stata introdotta per la prima volta in C#, vedere l'articolo sulla cronologia delle versioni del linguaggio C#.

Nell'esempio seguente viene let usato in due modi:

  1. Crea un tipo enumerabile su cui è possibile eseguire query.
  2. Consente alla query di chiamare ToLower una sola volta nella variabile worddi intervallo . Senza usare let, è necessario chiamare ToLower in ogni predicato nella where clausola .
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
*/

Vedere anche