14 Eylül 2015 Pazartesi

LINQ Extensions - Aggregate

Merhaba,

Bugünkü yazımda size .Net - System.Linq içinde yer alan Aggregate methodundan bahsedeceğim.

Aggregate'in türkçesi; toplam, bütün, küme diye geçmektedir (bkn. GoogleTranslate). Peki biz yazılımcılar için ne manasına geliyor?

Yapılan işlemin bir sonraki elemanın işlemesi sırasına aktarımıdır. Karışık oldu biraz. Aslında en iyi anlatım şekli listenin içinde bulunan sayıların toplamı örneği olur. Yani;

1, 2, 3, 4, 5, 6, 7 sayılarını barındıran bir listemiz olsun.

Klasik yöntemle çözmek istersek;


var listSample = new List();listSample.AddRange(new[] { 1, 2, 3, 4, 5, 6, 7 });var result = 0; foreach (var item in listSample){   result += item;}Console.WriteLine("Sonuc : {0}",result);



Burada 1 ile 2'yi topladık ve 3 ile toplamaya gönderdik. Çıkan sonucu 4 ile topladık. Sürekli yapılan işlemi aslında bir sonraki elemanla toplamak için result değişkenini kullandık.

İşte Aggregate ile yapılma şekli;


var result = listSample.Aggregate((firstParam, secondParam) => firstParam + secondParam);Console.WriteLine("Sonuc : {0}",result); 


1. Adımda fisrtParam = 1, secondParam = 2
2. Adımda fisrtParam = 3, secondParam = 3
3. Adımda fisrtParam = 6, secondParam = 4
4. Adımda fisrtParam = 10, secondParam = 5
5. Adımda fisrtParam = 15, secondParam = 6
6. Adımda fisrtParam = 21, secondParam = 7

Sonuç = 28

Aggregate'in nasıl kullanıldığını örnek üzerinden açıklamaya çalıştım.

Bol kod'lu günler..

Hiç yorum yok:

Yorum Gönder