Подтвердить что ты не робот

С# Об IEnumerable <T>.Aggregate

Я сделал несколько тестов о IList<T>.Aggregate(), но ответ не имеет смысла для меня.

List<int> Data1 = new List<int> { 1,0,0,0,0};

var result = Data1.Aggregate<int>((total, next) => total + total);

Результат 16.

Я ожидал, что это будет 32.

Может кто-нибудь объяснить?

4b9b3361

Ответ 1

Aggregate не выполняет обратный вызов для первого элемента в списке. Скорее, первый элемент используется в качестве начального значения для аккумулятора (total).
Поэтому ваш обратный вызов работает только четыре раза, а не пять, а 2 4= 16.