将 for 循环转换为 lambda
本文关键字:lambda 转换 循环 for | 更新日期: 2023-09-27 18:18:47
我想找到 3 或 5 低于 1000 的所有倍数的总和。
我的传统 for 循环方式是
for(int i=0;i<1000;i++)
{
if ((i % 3 == 0) || (i % 5 == 0))
{
result += i;
}
}
Console.WriteLine(result);
如何使用 lambda 来执行此操作?
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)
result = Enumerable
.Range(0, 1000)
.Sum(i => (i % 3 == 0) || (i % 5 == 0) ? i : 0);
这应该可以做到。