Метод AggregateBy
Метод AggregateBy класса Enumerable сворачивает элементы внутри каждого ключа.
Синтаксис
IEnumerable<KeyValuePair<TKey, TAcc>> stats = source.AggregateBy(x => key, seed, (acc, x) => next);
Пример
Давайте суммируем по ключу чётности:
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
List<int> nums = new List<int> {1, 2, 3, 4, 5};
foreach (var p in nums.AggregateBy(n => n % 2, 0, (s, n) => s + n))
{
Console.WriteLine(p.Key + " " + p.Value);
}
}
}
Результат выполнения кода:
1 9
0 6