Aldığı int parametre üzerinde çeşitli işlemler yapan ve elde ettiği sonucu geriye döndüren Hesapla() isminde bir method‘umuz var;
public int Hesapla(int Rakam) { ///parametre üzerinde gerçekleştirilen işlemler return Rakam; }</pre>
Hesapla() method’unu çağıran aşağıdaki YapilacakIsler1() method‘u olsun;
public IEnumerable<int> YapilacakIsler1(IEnumerable<int> Rakamlar)
{
    var Sonuc = new List<int>();
    foreach (var r in Rakamlar)
    {
        Sonuc.Add(Hesapla(r));
    }
    return Sonuc;
}YapilacakIsler1() method’unu, yield anahtar kelimesini kullanarak, IEnumerable<T> tipinde değişken oluşturmaya gerek kalmayacak şekilde değiştirebiliriz;
public IEnumerable<int> YapilacakIsler2(IEnumerable<int> Rakamlar)
{
    foreach (var r in Rakamlar)
    {
        yield return Hesapla(r);
    }
}Hatta, LINQ Expression yazarak IEnumerable<T> tipindeki listedenin tüm elemanlarını Hesapla() method’una parametre olarak gönderebiliriz;
public IEnumerable<int> YapilacakIsler3(IEnumerable<int> Rakamlar)
{
    return Rakamlar.Select(r => Hesapla(r));
}Son olarak, LINQ Select method’una Lambda Expression yerine, Hesapla() method’unu parametre olarak verebiliriz;
public IEnumerable<int> YapilacakIsler4(IEnumerable<int> Rakamlar)
{
    return Rakamlar.Select(Hesapla);
}
Yukarıdaki sadeleştirme *devrimsel* bir yenilik olmasa da, kodun daha *derli-toplu* olmasını sağlayacaktır.
Senior Software Engineer, @Microsoft
Ada ve Ege'nin babası ;)
Makale Adedi: 484