Рассчитать продукт с помощью LINQ

Я изучаю LINQ и имею очень простой вопрос, который, я думаю, поможет мне лучше понять технологию. Как я могу найти произведение массива ints?

Например, что такое способ LINQ:

int[] vals = { 1, 3, 5 };
return vals[0] * vals[1] * vals[2];

Ответ 1

Это будет работать:

var product = vals.Aggregate(1, (acc, val) => acc * val);

Вы начинаете с семени 1, а затем вызывается функция для каждого из ваших значений с двумя аргументами, acc, которая является текущим накопленным значением, и val, которая является значением в массиве; функция умножает текущее накопленное значение на значение в массиве, и результат этого выражения передается как acc следующей функции. то есть цепочка вызовов функций с предоставленным массивом будет:

(1, 1) => 1
(1, 3) => 3
(3, 5) => 15