C# 用LINQ计算乘积

C# 用LINQ计算乘积,c#,linq,C#,Linq,我正在学习LINQ,我有一个非常简单的问题,我认为这将帮助我更好地理解这项技术。如何找到整数数组的乘积 例如,LINQ的方法是什么: int[] vals = { 1, 3, 5 }; return vals[0] * vals[1] * vals[2]; 这将有助于: var product = vals.Aggregate(1, (acc, val) => acc * val); 从种子1开始,然后使用两个参数为每个值调用函数,acc是当前累积值,val是数组中的值;该函数将当前累

我正在学习LINQ,我有一个非常简单的问题,我认为这将帮助我更好地理解这项技术。如何找到整数数组的乘积

例如,LINQ的方法是什么:

int[] vals = { 1, 3, 5 };
return vals[0] * vals[1] * vals[2];
这将有助于:

var product = vals.Aggregate(1, (acc, val) => acc * val);
从种子
1
开始,然后使用两个参数为每个值调用函数,
acc
是当前累积值,
val
是数组中的值;该函数将当前累积值乘以数组中的值,该表达式的结果作为
acc
传递给下一个函数。i、 e.使用您提供的数组的函数调用链将是:

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

var的使用是个人/团队的决定。就我个人而言,我不认为类型信息是非常有用的,它会分散您对代码用途的注意力。我在这里写到:这就是聚合的工作原理。这似乎非常有用,我不敢相信我以前还没有学会怎么做。我认为你不需要种子。如果未提供种子
聚合
将使用列表中的前两项。之前评论中提到的博客帖子已移至@Juan,无种子版本将对空源引发异常