我想找到1000或以下3或5的所有倍数的总和。
我传统的for循环方式是
for(int i=0;i<1000;i++)
{
if ((i % 3 == 0) || (i % 5 == 0))
{
result += i;
}
}
Console.WriteLine(result);
如何使用lambda代替?
答案 0 :(得分:8)
Enumerable.Range(0, 1000).Where(i => i % 3 == 0 || i % 5 == 0).Sum()
或者
Enumerable.Range(0, 1000).Sum(i => i % 3 == 0 || i % 5 == 0 ? i : 0)
答案 1 :(得分:2)
result = Enumerable
.Range(0, 1000)
.Sum(i => (i % 3 == 0) || (i % 5 == 0) ? i : 0);
这应该这样做。