Суммирование с использованием Lambda C # 3.0 - PullRequest
0 голосов
/ 23 апреля 2010

У меня есть маленькая вещь.

public int GetSum(List<int> x)
{
    foreach (int i in x) sum += i;

return sum;

}

где x - список целых чисел, определенный как

List<int> l = new List<int>();
            l.Add(4); l.Add(2); l.Add(5); l.Add(8); l.Add(6);

и был передан как GetSum(l)

Можно ли переписать вышеуказанный цикл foreach, используя лямбду?

Причина: я начал изучать лямбда-материалы со вчерашнего дня, и мне интересно учиться ... как бы это ни было просто.

Спасибо.

Ответы [ 2 ]

4 голосов
/ 23 апреля 2010

Aggregate() было сделано для таких операций:

public int GetSum(List<int> x)
{
    return x.Aggregate((a, b) => a + b);
}
4 голосов
/ 23 апреля 2010

LINQ уже имеет Sum метод расширения :

list.Sum();

Вы можете переписать свой метод GetSum, используя метод C # 2.0 List<T>.ForEach, например:

public int GetSum(List<int> x) {
    int sum;
    x.ForEach(i => sum += i);   
    return sum;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...