2008-10-31 116 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