CodeBlanks Logo Icon CodeBlanks

Aggregate

C# kursu · İleri seviye · Ders 28/83

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

  1. 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.

  2. Aggregate çağrısını tamamla

    var sum = numbers.____((acc, n) => acc + n);
    Cevabı göster
    var sum = numbers.Aggregate((acc, n) => acc + n);
  3. Parçayı rolüne eşle

    acc
    Biriken değer
    n
    Şu anki eleman
    seed
    Başlangıç değeri
    Aggregate
    Katlama metodu

İleri seviye bölümündeki tüm dersler