avatar
·2 dk okuma
C# ile Lambda İfadeleri (Expressions)

C# ile Lambda İfadeleri (Expressions)

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 İfadelerinin Yapısı

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 İfadelerinin Kullanımı

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 İfadeleri ve Metod Çağrıları

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.

Sonuç

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.