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.

Ahmet Hamatoğlu

1991 İzmir/Konak doğumluyum. Hacettepe Üniversitesi Matematik Bölümü 2014 mezunuyum. Yazılıma ilk olarak bölümde aldığım C++ dersi ile başladım daha sonra Java , Python ve C# dilleriyle geliştirmeler yaptım. Şu anda Yazılım Mühendisi olarak çalışıyorum. .Net ve Oracle teknolojileri üzerine çalışmalarımı sürdürüyorum. Elimden geldiği kadar bilgilerimi aktarmaya çalışıyorum. Junior seviyesinde olduğum için sitede bilgilerimi paylaşmamın araştırma yapmamı sağlamasının bana katkı sağlayacağını düşünüyorum. Sormak istediğiniz aklınıza takılan her konuda yardımcı olmaya çalışırım.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir