Sdílet prostřednictvím


let clause (Referenční dokumentace jazyka C#)

Ve výrazu dotazu může být užitečné uložit výsledek dílčího výrazu, abyste ho mohli použít v pozdějších klauzulích. Pomocí klíčového let slova vytvořte novou proměnnou rozsahu a inicializujete ji s výsledkem výrazu. Po inicializaci proměnné rozsahu s hodnotou ji nemůžete přiřadit jinou hodnotu. Pokud ale proměnná rozsahu obsahuje typ, který lze dotazovat, můžete ho dotazovat.

Referenční dokumentace jazyka C# dokumentuje naposledy vydané verze jazyka C#. Obsahuje také počáteční dokumentaci k funkcím ve verzi Public Preview pro nadcházející jazykovou verzi.

Dokumentace identifikuje všechny funkce, které byly poprvé představeny v posledních třech verzích jazyka nebo v aktuálních verzích Public Preview.

Návod

Informace o tom, kdy byla funkce poprvé představena v jazyce C#, najdete v článku o historii verzí jazyka C#.

V následujícím příkladu let se používá dvěma způsoby:

  1. Vytvoří výčtový typ, který můžete dotazovat.
  2. Umožňuje dotaz volat ToLower pouze jednou v proměnné wordrozsahu . Bez použití letbyste museli volat ToLower v jednotlivých predikátech v klauzuli 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($"\"{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
*/

Viz také