English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

LINQ let キーワード

'let'キーワードはクエリ文法で非常に役立ちます。新しいスコープ変数を投影し、表現を再利用してクエリをより読みやすくします。

例えば、文字列値を比較して小文字の文字列値を選択することができます:

IList<Student> studentList = new List<Student>() { 
    new Student() { StudentID = 1, StudentName = "John", Age = 18 }
    new Student() { StudentID = 2, StudentName = "Steve",  Age = 21 }
    new Student() { StudentID = 3, StudentName = "Bill",  Age = 18 }
    new Student() { StudentID = 4, StudentName = "Ram" , Age = 20 } ,
    new Student() { StudentID = 5, StudentName = "Ron" , Age = 21 } 
};
var lowercaseStudentNames = from s in studentList
                            where s.StudentName.ToLower().StartsWith("r")
                            select s.StudentName.ToLower();

ご覧の通り、ToLower()メソッドは上記のクエリで複数回使用されています。以下の例では「let」を用いて新しい変数「lowercaseStudentName」を導入し、その変数を使用してすべての場所を置き換えます。letキーワードはクエリの可読性を向上させます。

例:C#でのletキーワード

var lowercaseStudentNames = from s in studentList
                            let lowercaseStudentName = s.StudentName.ToLower()
                                where lowercaseStudentName.StartsWith("r")
                                select lowercaseStudentName;
foreach (var name in lowercaseStudentNames)
	Console.WriteLine(name);
例:VB.Netでのletキーワード
Dim lowercaseStudentNames = From s In studentList
                            Let lowercaseStudentName = s.StudentName.ToLower()
                                Where lowercaseStudentName.StartsWith("r")
                                Select lowercaseStudentName;
出力:
ram
ron