Reader Level:
Articles

LINQ Let Keyword Using C#

By Sachin Kalia on July 18, 2012
At time of Exploring LINQ keywords, I am in front of Let keyword and thought to write something for .net geeks.
  • 0
  • 0
  • 17733
Download Files:
 

While exploring LINQ keywords, I encountered the Let keyword and thought to write something for .Net geeks. I've taken an idea from my previous article on http://www.c-sharpcorner.com about DefaultIfEmpty() and utilized similar code. You can look at this article here: http://www.c-sharpcorner.com/UploadFile/97fc7a/linq-method-defaultifempty/.

The Let keyword gives you the liberty to use its value for the next level. This is the beauty of this keyword, that you can utilize the value on the next statement, which helps you keep your code simpler and easier to understand.

Example for the LINQ Let Clause Using C# in ASP.Net

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace LINQ_LetKeyword

{

 

    class Employee

    {

        public string Name { get; set; }

        public string EmpID { get; set; }

        public int Salary { get; set; }

 

    }

    class Program

    {

        static void Main(string[] args)

        {

            //Object Initialization for Employee class

            List<Employee> objEmployee = new List<Employee>{

                    new Employee{ Name="Sachin",EmpID="I001",Salary=800},

                    new Employee{ Name="Vijay",EmpID="I002",Salary=400},

                    new Employee{ Name="Ashish",EmpID="I003",Salary=250},

                    new Employee{ Name="Syed",EmpID="I004",Salary=300},

                    new Employee{ Name="Ravish",EmpID="I005",Salary=700},

                };          

 

            var objresult = from emp in objEmployee

                            let totalSalary = objEmployee.Sum(sal => sal.Salary)

                            let avgSalary = totalSalary / 5

                            where avgSalary > emp.Salary

                            select emp;

            foreach (var emp in objresult)

            {

                Console.WriteLine("Student: {0} {1}", emp.Name, emp.EmpID);

 

            }

            Console.ReadLine();

        }

    }

}

LINQ Query
 

var objresult = from emp in objEmployee

                            let totalSalary = objEmployee.Sum(sal =>  sal.Salary)

                            let avgSalary = totalSalary / 5

                            where avgSalary > emp.Salary

                            select emp;



//output :

LinqLet.jpg

I've tried to use the very simplest way to describe the "Let" keyword. Yet I look forward to your advise on this, whether I could present it in a more convenient way and if so then how.

Cheers.
 

Sachin Kalia

Hi Folks, I am Sachin Kalia .I work in .Net technologies and work in software company in 3 Pillar Global(Earlier Brickred Technologies).I share my thoughts about .Net and associated technologies through C#Corner .I ... Read more

Personal Blog: http://www.dotnetpiper.com/
COMMENT USING

Trending up