C# programlama dilinde, lambda ifadeleri kısa ve öz fonksiyonlar tanımlamanıza olanak tanır. Temelde, bir lambda ifadesi, isimsiz bir metottur ve genellikle kısa süreli işlemler için kullanılır. Lambda ifadeleri, özellikle koleksiyonlar üzerinde işlemler yaparken LINQ sorguları ile birlikte sıklıkla kullanılır.
Lambda ifadeleri =>
operatörü kullanılarak tanımlanır. Sol tarafta, fonksiyonun alacağı parametreler, sağ tarafta ise bu parametrelerle yapılacak işlem yer alır:
(parametreler) => ifade
Örnek olarak, iki sayının çarpımını döndüren bir lambda ifadesi aşağıdaki gibi olabilir:
Func<int, int, int> carpim = (a, b) => a * b;
Bu örnekte, Func<int, int, int>
tanımı, iki adet int
türünde parametre alıp, bir int
türünde değer döndüren bir fonksiyonu ifade eder. (a, b)
lambda ifadesinin parametrelerini belirtirken, a * b
ise bu parametrelerle yapılacak işlemi tanımlar.
Lambda ifadeleri, koleksiyonlar üzerinde işlemler gerçekleştirmek için sıkça kullanılır. Örneğin, bir sayı listesinden çift sayıları filtrelemek için şu şekilde bir lambda ifadesi kullanabilirsiniz:
List<int> sayilar = new List<int>() {1, 2, 3, 4, 5};
List<int> ciftSayilar = sayilar.Where(n => n % 2 == 0).ToList();
Burada, .Where(n => n % 2 == 0)
lambda ifadesi, sayilar
listesindeki her bir n
elemanı için n % 2 == 0
koşulunu kontrol eder ve bu koşulu sağlayan elemanları yeni bir liste olarak döndürür.
Lambda ifadeleri, metod çağrılarında da kullanılabilir. Örneğin, bir listenin her bir elemanı için bir işlem yapmak istediğinizde, ForEach
metodunu kullanarak lambda ifadesi geçirebilirsiniz:
sayilar.ForEach(n => Console.WriteLine(n * 2));
Bu kod, sayilar
listesindeki her bir n
elemanı için Console.WriteLine(n * 2)
ifadesini çalıştırır ve böylece listendeki her sayının iki katını ekrana yazdırır.
Lambda ifadeleri, C# programlamada kodunuzu daha sade ve okunabilir hale getirmenizi sağlar. Özellikle koleksiyonlar ve LINQ sorguları ile çalışırken, karmaşık işlemleri tek bir satırda ifade etmenize olanak tanır. Lambda ifadelerinin kullanımı, kod tekrarını azaltır ve programın genel anlaşılırlığını artırır.