這個問題被問在interview.I需要從陣列C# - 運行()總使用聚合
(IE)
int[] array={10,20,30};
Expected output
10
30
60
運行總量(
只用骨料())
當我使用骨料(我施加一些最壞邏輯)
array.Aggregate((a, b) => { Console.WriteLine(a + b); return (a + b); });
1)It prints 30,60
,對我來說沒有使用return(a + b)。
2)爲了打印10
,我必須通過添加元素零 (即{0,10,20,30})來修改數組。
有沒有什麼整潔的工作可以把它變成?
無論誰要求你這樣做,都不使用序列運算符的良好編碼實踐。 「聚合」應該返回一個標量值,這就是它應該做的;它不應該產生副作用。如果你想要產生的是「累計運行總數序列」,那麼不要使用Aggregate;寫一個新的序列運算符「累加」並使用它。 – 2009-12-03 15:20:11