let tümcesi (C# Başvurusu)let clause (C# Reference)

Bir sorgu ifadesinde bazen sonraki yan tümcelerinde kullanmak için bir alt ifadenin sonucu depolamak yararlıdır.In a query expression, it is sometimes useful to store the result of a sub-expression in order to use it in subsequent clauses. İle bunu yapabilirsiniz let yeni bir aralık değişkenine oluşturan ve sağladığınız ifadenin sonucu ile başlatır anahtar sözcüğü.You can do this with the let keyword, which creates a new range variable and initializes it with the result of the expression you supply. Bir değerle başlatıldıktan sonra başka bir değeri depolamak için aralık değişkeni kullanılamaz.Once initialized with a value, the range variable cannot be used to store another value. Ancak, aralık değişkeni bir sorgulanabilir tür tutar, sorgulanabilir.However, if the range variable holds a queryable type, it can be queried.

ÖrnekExample

Aşağıdaki örnekte let iki şekilde kullanılır:In the following example let is used in two ways:

  1. Kendisini sorgulanabilir bir numaralandırma türü oluşturmak için.To create an enumerable type that can itself be queried.

  2. Aranacak sorgu etkinleştirmek için ToLower aralık değişkeni üzerinde yalnızca bir kez word.To enable the query to call ToLower only one time on the range variable word. Kullanmadan let, çağırmak zorunda ToLower her koşulda içinde where yan tümcesi.Without using let, you would have to call ToLower in each predicate in the where clause.

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

Ayrıca bkz.See also