Aggregate
Aggregate ile özel akümülasyonu öğrenirsin.
Aggregate ile katlama
Aggregate bir diziyi tek bir değere katlar (fold). Biriktirici (accumulator) ve güncelleme işlevi alır; her eleman için biriktiriciyi günceller ve sonunda tek değer döndürür.
Örnek: numbers.Aggregate((acc, n) => acc + n) tüm sayıları toplar. İlk çağrıda acc ilk eleman, n ikinci eleman olur. Döngü boyunca acc ara toplamı taşır.
Tohum değeri
Aggregate bir tohum (seed) değeri de alabilir: numbers.Aggregate(0, (acc, n) => acc + n). Tohum ilk biriktirici değeridir; ilk elemanla karışmaz. Boş dizilerde tohum sonuç olur.
Tohum kullanmak, başlangıç türünü sonuç türünden ayırmaya da yarar. Örneğin bir string listesini Aggregate("", (acc, s) => acc + s) ile tek stringe birleştirebilirsin.
Uygulama Sayıları Aggregate ile topla
Aşağıdaki numbers listesinin toplamını Aggregate ile hesapla ve Console.WriteLine ile yazdır.
Örnek çözümü göster
var sum = numbers.Aggregate((acc, n) => acc + n); ile toplamı hesapla, Console.WriteLine(sum); ile yazdır.
Örnek çözüm:
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
var numbers = new List<int> { 1, 2, 3, 4 };
var sum = numbers.Aggregate((acc, n) => acc + n);
Console.WriteLine(sum);
}
}
Kendini test et
-
Aggregate ne yapar?
- Diziyi filtreler
- Diziyi sıralar
- Diziyi gruplar
- Diziyi tek değere katlar
Cevabı göster
Diziyi tek değere katlar — Doğru. Aggregate bir diziyi biriktiriciyle tek değere indirir.
-
Aggregate çağrısını tamamla
var sum = numbers.____((acc, n) => acc + n);Cevabı göster
var sum = numbers.Aggregate((acc, n) => acc + n); -
Parçayı rolüne eşle
- acc
- Biriken değer
- n
- Şu anki eleman
- seed
- Başlangıç değeri
- Aggregate
- Katlama metodu