sum2
использует пользовательскую функцию x + y
для агрегирования каждого элемента списка. Агрегирование начинается со значения по умолчанию для целого числа 0
и добавляет к нему первый элемент. Затем он принимает это значение и добавляет следующий элемент и т. Д., Пока в нем не закончатся элементы. Затем возвращается окончательная цифра.
sum3
делает то же самое, что и sum2
, но также явно запускает агрегацию с определенным значением 0
.
Семантически все три одинаковы - как представлено здесь - но изменяя функцию агрегации и начальное начальное значение, вы можете генерировать все виды пользовательских агрегатов.
Другой способ взглянуть на это так: .Sum()
- это просто сокращение для .Aggregate(0, (x, y) => x + y);
.