将 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 来执行此操作?

将 for 循环转换为 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);

这应该可以做到。