Udostępnij przez


let klauzula (odwołanie w C#)

W wyrażeniu zapytania może być przydatne przechowywanie wyniku wyrażenia podrzędnego, aby można było go użyć w późniejszych klauzulach. Użyj słowa kluczowego let , aby utworzyć nową zmienną zakresu i zainicjować ją za pomocą wyniku wyrażenia. Po zainicjowaniu zmiennej zakresu przy użyciu wartości nie można przypisać jej innej wartości. Jeśli jednak zmienna zakresu zawiera typ z możliwością wykonywania zapytań, możesz wykonać zapytanie względem niej.

Dokumentacja języka C# zawiera ostatnio wydaną wersję języka C#. Zawiera również początkową dokumentację dla funkcjonalności w publicznych wersjach testowych nadchodzącego wydania języka.

Dokumentacja identyfikuje dowolną funkcję po raz pierwszy wprowadzoną w ostatnich trzech wersjach języka lub w bieżącej publicznej wersji zapoznawczej.

Wskazówka

Aby dowiedzieć się, kiedy funkcja została po raz pierwszy wprowadzona w języku C#, zapoznaj się z artykułem dotyczącym historii wersji języka C#.

W poniższym przykładzie let użyto dwóch sposobów:

  1. Tworzy typ wyliczalny, którego można wykonać zapytanie.
  2. Umożliwia ona wywołanie ToLower zapytania tylko raz w zmiennej wordzakresu . Bez użycia metody letnależy wywołać ToLower w każdym predykacie w 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
*/

Zobacz też