Udostępnij za pośrednictwem


Klauzula Let (odwołanie w C#)

W wyrażeniu kwerendy czasem jest użyteczne do przechowywania wynik wyrażenia podrzędnego w celu użycia go w kolejnych klauzul.W tym z let słowa kluczowego, która tworzy nową zmienną zakres i inicjuje ją z wynikiem wyrażenia, należy dostarczyć.Po inicjowane z wartością, zmiennej zakresu nie można użyć do przechowywania innej wartości.Jednakże jeśli zmienna zakres przechowuje typu queryable, to można przeszukiwać.

Przykład

W poniższym przykładzie let jest używany na dwa sposoby:

  1. Aby utworzyć agregującym typu, który mogą sobie być wyszukiwane.

  2. Aby umożliwić kwerendy do wywołania ToLower tylko jeden raz na zmiennej zakres word.Bez korzystania z let, trzeba wywołać ToLower w predykacie, każdy w where klauzuli.

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);
        }

        // Keep the console window open in debug mode.
        Console.WriteLine("Press any key to exit.");
        Console.ReadKey();
    }
}
/* 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ż

Zadania

Porady: obsługa wyjątków w wyrażeniach kwerend (Przewodnik programowania w języku C#)

Koncepcje

Wyrażenia kwerend LINQ (Przewodnik programowania w języku C#)

Inne zasoby

Odwołanie w C#

Słowa kluczowe zapytania (odwołanie w C#)

Wprowadzenie do korzystania z LINQ w C#