为什么这里的结果是50而不是2?
int n = 2; n = n.ToString().Aggregate(1, (a, b) => a * b)
但这里是2?
int n = 2; n = n.ToString().Aggregate(1, (a, b) => a * (b -'0'))
它是如何工作的?
在两个样本中,a
是int
,b
是char
。
a
是您的种子,=1,b
是'2'的unicode值,=50。因此,在第一种情况下的结果是50。
"0"的unicode值为48,因此结果为2。