С# Об 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
.
Может кто-нибудь объяснить?
Ответы
Ответ 1
Aggregate
не выполняет обратный вызов для первого элемента в списке.
Скорее, первый элемент используется в качестве начального значения для аккумулятора (total
).
Поэтому ваш обратный вызов работает только четыре раза, а не пять, а 2 4= 16.