我是一个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代码是示例性的,没有实际用途)。
答案 0 :(得分:12)
你正在寻找这样的东西:
var sum = items.Sum(i => i.Count);
Sum
是LINQ提供的扩展方法,它对可枚举的项目序列求和。在这种情况下,由于项目(类型SomeObject
)无法自己求和,因此您希望使用接受lambda的Sum
重载。这个lambda用于从每个项目中提取“可累加”值。
在这种情况下,“summable”值是每个Count
的{{1}},因此SomeObject
。