Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
⊗csSpAqAb 179 of 509 menu
◀ ▶

AggregateBy в LINQ

Метод AggregateBy сочетает группировку и свёртку: для каждого ключа свой накопитель. Начальное значение и функция обновления задаются так же, как у Aggregate, но отдельно для каждой группы.

Сумма длин слов с одинаковой длиной считается отдельно. Для длины 2 слова "bb" и "cc" дают сумму 4:

string[] words = ["a", "bb", "cc"]; var q = words.AggregateBy(w => w.Length, 0, (acc, w) => acc + w.Length); Console.WriteLine(q.First(k => k.Key == 2).Value);

Чётные числа 2, 4 и 4 дают сумму 10. Нечётное 1 даёт сумму 1:

int[] nums = [2, 4, 4, 1]; var q = nums.AggregateBy(n => n % 2, 0, (acc, n) => acc + n); Console.WriteLine(q.First(g => g.Key == 0).Value); Console.WriteLine(q.First(g => g.Key == 1).Value);

Сложите суммы заказов отдельно по каждому городу и выведите сумму для "Riga".

Сложите баллы студентов с одинаковой буквой оценки и выведите сумму для "A".

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить