LINQ / Lambda Expression

16 Tem

Bu yazımızda da LINQ sorgularının lambda ifadeleriyla nasıl yazıldığını inceleyelim. Uzun uzun yazılan LINQ sorgularını tek satırda yazmak mümkündür. Bu sayede hem temiz hemde rahat okunabilir bir kod ortayaçıkıyor.

Bir Employee sınıfı oluşturup, sorgulama yapmak için de bu tipe ait bir liste oluşturarak işe başlayabiliriz.


 public class Employee
 {
       public int id { get; set; }
       public string Name { get; set; }
       public double Salary { get; set; }

       public override string ToString()
       {
            return string.Format("Name: {0} Salary: {1}",Name, Salary);
       }
 }

Employee tipine ait liste de şu şekilde olsun.


 List<Employee> Employees = new List<Employee>
 {
      new Employee{ id=1102, Salary=1250, Name="Jim" },
      new Employee{ id=1802, Salary=2250, Name="Tim" },
      new Employee{ id=1650, Salary=3250, Name="Kim" },
      new Employee{ id=2102, Salary=1750, Name="Sim" },
      new Employee{ id=3182, Salary=1350, Name="Him" },
};

Sorgu: Maaşı 1900’den küçük olan çalışanları ada göre sıralayarak göster.

Linq Sorgusu

    var linqResult = from c in Employees
                     where c.Salary < 1900
                     orderby c.Name
                     select c;

Lambda Expression Sorgusu

var lambdaResult = Employees.Where(i => i.Salary < 1900).OrderBy(i => i.Name);

Sorguları çeşitlendirmek mümkündür. Sonuçta bu örnek göldeki bir damla gibidir.