2008-10-31 81 views
12

我正在学习LINQ,并且有一个非常简单的问题,我认为这将有助于我更好地理解该技术。我怎样才能找到一个int数组的产品?使用LINQ计算产品

例如,什么是LINQ的方式来做到:

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

回答

28

这会工作:

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

你开始与1种子,然后调用该函数的每个您的值有两个参数,acc是当前累计值,val是数组中的值;该函数将当前累加值乘以数组中的值,并将该表达式的结果作为acc传递给下一个函数。即您提供的阵列的函数调用链将为:

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

+1。建议使用int而不是var。 – 2008-10-31 14:17:51