let-sats (C#-referens)

I ett frågeuttryck är det ibland användbart att lagra resultatet av ett underuttryck för att kunna använda det i efterföljande satser. Du kan göra detta med nyckelordet let , vilket skapar en ny intervallvariabel och initierar den med resultatet av det uttryck som du anger. När intervallvariabeln har initierats med ett värde kan den inte användas för att lagra ett annat värde. Men om intervallvariabeln innehåller en frågebar typ kan den efterfrågas.

Exempel

I följande exempel let används på två sätt:

  1. Skapa en uppräkningsbar typ som själv kan frågas.

  2. Så här gör du så att frågan bara anropar ToLower en gång i intervallvariabeln word. Utan att använda letmåste du anropa ToLower i varje predikat i where -satsen.

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
*/

Se även