我想递归地迭代一个日期的数字--,对它们进行求和,然后在第一个和中计算单个数字的另一个和。
例如,道布,1947年8月15日( 15 /08/ 1947 )
1+5+0+8+1+9+4+7 = 35
3+5 =8
答案: 8
LINQ的.Aggregate()函数帮了我很多..。
DOB.toString().Aggregate((a,b)=>(int)a+(int)b)...but it结果35 :( )
我想要一个递归的LINQ调用,结果总是一个数字。
发布于 2013-09-12 10:47:09
DOB.ToString("yyyymmdd")准确地返回8位数字。每个数字不超过9,所以第一个和永远不会超过8*9=72。因此,我们只需要彼此的总结。最后,一个单一的linq答案是:
sum =
dob.ToString("yyymmdd")
.Aggregate(0, (a, b) => a + int.Parse(b.ToString())).ToString()
.Aggregate(0, (a, b) => a + int.Parse(b.ToString())).ToString()
.Aggregate(0, (a, b) => p + int.Parse(b.ToString()));https://stackoverflow.com/questions/18761846
复制相似问题