Преобразование цикла for в лямбду - PullRequest
0 голосов
/ 23 декабря 2011

Я хочу найти сумму всех кратных 3 или 5 ниже 1000.

Мой традиционный способ цикла -

for(int i=0;i<1000;i++)
{
    if ((i % 3 == 0) || (i % 5 == 0))
    {
        result += i;
    }
}
Console.WriteLine(result);

Как я могу сделать это, используя лямбду вместо

Ответы [ 2 ]

8 голосов
/ 23 декабря 2011
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)
2 голосов
/ 23 декабря 2011
result = Enumerable
            .Range(0, 1000)
            .Sum(i => (i % 3 == 0) || (i % 5 == 0) ? i : 0);

Это должно сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...