C# Lambda Expressions kullanımı
Merhaba,
Bu yazımda Lambda Expressions hakkında biraz bilgi vermeye çalışacağım. Lambda Expressions genelde basit işlermler yapmak için kullanılır ve LINQ sorgularının yazılımını kolaylaştırır.
[csharp]
n=>n*n;
[/csharp]
Sol tarafta parametre bildirimini, lambda operatöründen (=>) sonra ifadeyi veya kod bloğunu sağ tarafa yazın.
Örnek;
[csharp]
using System;
using System.Collections.Generic;
using System.Linq;
namespace Lambda_Ifadeleri
{
class Program
{
// iki tam sayı parametresi alan delegete tanımlayalım
delegate int TamsayiIslevi(int sayi1, int sayi2);
static void Main(string[] args)
{
TamsayiIslevi tsiTopla = (x, y) => x + y;
TamsayiIslevi tsiCikar = (x, y) => x – y;
Console.WriteLine(tsiTopla(19, 9));
Console.WriteLine(tsiCikar(19,9));
Console.ReadKey();
}
}
}
[/csharp]
Şimdi de LINQ sorgularının lambda ifadeleriyle nasıl yazıldığına bakalım. LINQ sorgularını lambda ifadelerini kullanarak tek seferde yazmak mümkündür. Okunaklı bir kod yazımı sağlamış oluruz.
Örnek :
[csharp]
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 tipin de listemizi oluşturalım.
List<Employee> Employees = new List<Employee>
{
new Employee{ id=1, Salary=1500, Name="Emre" },
new Employee{ id=2, Salary=2000, Name="Ahmet" },
new Employee{ id=3, Salary=3000, Name="Ali" },
};
//Maaşı 1750’den küçük olan çalışanları alfabetik sırayla gösterelim.
//LINQ sorgusu
var linq = from c in Employees
where c.Salary < 1750
orderby c.Name
select c;
//Lambda Expression sorgusu
var lambda = Employees.Where(i => i.Salary < 1750).OrderBy(i => i.Name);
[/csharp]
Örnekler bu şekilde çoğaltılabilir. Lambda Expression hakkında aktaracaklarım bu kadar umarım yararlı olur. İyi çalışmalar.