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

LINQ let Keyword

'let' keyword is very useful in query syntax. It projects a new range variable, allowing the reuse of expressions and making the query more readable.

For example, you can compare string values and select lowercase string values as follows:

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

As you can see, the ToLower() method is used multiple times in the above query. The following example uses 'let' to introduce a new variable 'lowercaseStudentName' and then uses it everywhere.letKeywords make the query more readable.

Example: let keyword in C#

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);
Example: let keyword in VB.Net
Dim lowercaseStudentNames = From s In studentList
                            Let lowercaseStudentName = s.StudentName.ToLower()
                                Where lowercaseStudentName.StartsWith("r")
                                Select lowercaseStudentName;
Output:
ram
ron