作者:和谐啄木鸟 | 2023-09-03 13:45
1> Greg Beech..:
这可行:
var product = vals.Aggregate(1, (acc, val) => acc * val);
你从一个种子开始,1
然后用两个参数为你的每个值调用函数,acc
这两个参数是当前的累积值,val
它是数组中的值; 该函数将当前累计值乘以数组中的值,并将该表达式的结果传递acc
给下一个函数.即,您提供的数组的函数调用链将是:
(1, 1) => 1
(1, 3) => 3
(3, 5) => 15
我认为你不需要种子.如果没有提供种子,`Aggregate`将使用列表中的前两项.
@Juan无种子版本将为空源https引用异常https://referencesource.microsoft.com/#System.Core/System/Linq/Enumerable.cs,ff1369203d6036a4
使用var是个人/团队的决定.就个人而言,我不认为类型信息非常有用,并且会分散您对代码的*目的*的注意力.我在这里写了这篇文章:http://gregbeech.com/blogs/tech/archive/2008/03/24/to-var-or-not-to-var-implicit-typing-is-the-question.aspx