лямбда-выражение для обхода массива - PullRequest
2 голосов
/ 03 декабря 2011

я лямбда нуб

Я ищу способ использования анонимных методов для суммирования результата переменной count в моих товарах

class SomeObject
{
    public int Count{get;}
}

SomeObject [] items = new SomeObject[]{......};  

Я ищу лямбда-выражение для суммирования и возврата суммы всех графов. что-то вроде

Func<SomeObject[],int> counter =  // the lambada i don't know how to write.

ценим любую помощь и ссылки на некоторые хорошие учебники

Я не хочу публиковать еще одну дилемму, все расширения хороши, хорошо но что, если мне нужно выполнить процесс, который не встроен в коллекцию например Sum, Where, Select ... ext.

например:

     string description = string.empty; 
     foreach(var provider in Providers)
     {
            description += provider.Description ;
     }
     return decapitation .

Я инкапсулировал его в делегат Func, но мне нужно сослаться на этот делегат на анонимный метод, используя лямбда-выражение, которое преформирует приведенный выше код, я просто не могу понять синтаксис для этого.

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

(к примеру, код является образцовым и не используется).

1 Ответ

12 голосов
/ 03 декабря 2011

Вы ищете что-то вроде этого:

var sum = items.Sum(i => i.Count);

Sum - это метод расширения, предоставляемый LINQ, который суммирует перечисляемую последовательность элементов. В этом случае, поскольку элементы (которые имеют тип SomeObject) не могут суммироваться сами, вы хотите использовать перегрузку Sum, которая принимает лямбду. Эта лямбда-функция служит для извлечения «суммируемого» значения из каждого элемента.

В этом случае «суммируемым» значением является Count каждого SomeObject, следовательно, i => i.Count.

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