klausul let (Referensi C#)

Dalam ekspresi kueri, terkadang berguna untuk menyimpan hasil subekspresi untuk menggunakannya dalam klausa berikutnya. Anda dapat melakukan ini dengan kata kunci let, yang membuat variabel rentang baru dan menginisialisasinya dengan hasil ekspresi yang Anda berikan. Setelah diinisialisasi dengan nilai, variabel rentang tidak dapat digunakan untuk menyimpan nilai lain. Namun, jika variabel rentang memiliki jenis yang dapat dikueri, variabel tersebut dapat dikueri.

Contoh

Dalam contoh let berikut digunakan dalam dua cara:

  1. Untuk membuat jenis yang dapat dihitung yang dengan sendirinya dapat dikueri.

  2. Untuk membuat kueri dapat memanggil ToLower hanya satu kali pada variabel rentang word. Tanpa menggunakan let, Anda harus memanggil ToLower dalam setiap predikat dalam klausul 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("\"{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
*/

Lihat juga