用于遍历数组的lambda表达式

时间:2011-12-03 16:16:29

标签: c# delegates lambda

我是一个lambda noob

我正在寻找一种使用匿名方法来总结计数变量结果的方法 在我的项目

class SomeObject
{
    public int Count{get;}
}

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

我正在寻找一个lambda表达式来总结并返回所有计数的数量

的内容
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 .

iv'e将它封装在一个Func委托中,但我需要使用lambda表达式引用该委托给匿名方法,该表达式预先形成了上面的代码,我无法弄清楚这样做的语法。

一般来说,我正在寻找一种方法来编写一个foreach循环,其内部逻辑使用lambda表达式

(fyi代码是示例性的,没有实际用途)。

1 个答案:

答案 0 :(得分:12)

你正在寻找这样的东西:

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

Sum是LINQ提供的扩展方法,它对可枚举的项目序列求和。在这种情况下,由于项目(类型SomeObject)无法自己求和,因此您希望使用接受lambda的Sum重载。这个lambda用于从每个项目中提取“可累加”值。

在这种情况下,“summable”值是每个Count的{​​{1}},因此SomeObject