Поделиться через


let предложение (справочник по C#)

В выражении запроса можно сохранить результат вложенных выражений, чтобы использовать его в последующих предложениях. Используйте ключевое let слово, чтобы создать переменную диапазона и инициализировать ее с результатом выражения. После инициализации переменной диапазона со значением ее нельзя назначить другое значение. Однако если переменная диапазона содержит запрашиваемый тип, его можно запросить.

Справочные документы по языку C# описывают последнюю выпущенную версию языка C#. Она также содержит начальную документацию по функциям в общедоступных предварительных версиях для предстоящего языкового выпуска.

Документация определяет любую функцию, впервые представленную в последних трех версиях языка или в текущих общедоступных предварительных версиях.

Подсказка

Чтобы узнать, когда функция впервые появилась в C#, ознакомьтесь со статьей об истории версий языка C#.

В следующем примере let используется двумя способами:

  1. Он создает перечислимый тип, который можно запросить.
  2. Он позволяет запросу ToLower вызывать только один раз в переменной wordдиапазона. Без использования letнеобходимо вызвать ToLower каждый предикат в предложении 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
*/

См. также