C# 用于遍历数组的lambda表达式

C# 用于遍历数组的lambda表达式,c#,delegates,lambda,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

我是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.
iv'e将其封装在Func委托中,但我需要将该委托引用到使用lambda表达式的匿名方法中,该表达式执行上述代码,我只是不知道这样做的语法

一般来说,我正在寻找一种使用lambda表达式编写foreach循环的方法,其中包含它的逻辑


(仅供参考,该代码是示例性的,没有实际用途)。

您正在寻找类似以下内容:

var sum = items.Sum(i => i.Count);
是LINQ提供的一种扩展方法,它对可枚举项序列求和。在这种情况下,由于项目(类型为
SomeObject
)本身无法求和,因此您希望使用接受lambda的
Sum
重载。此lambda用于从每个项中提取“可求和”值


在这种情况下,“summable”值是每个
SomeObject
Count
,因此
i=>i.Count

这只适用于一般集合,我使用的是它没有的数组extensions@eranotzer:在您的示例中,我们看到一个类型化数组,这些扩展方法(当然,您需要使用System.Linq执行
)。如果您拥有的内容与发布的内容不完全相同,请编辑问题。数组是一个通用集合:SomeObject[]是IEnumerable的一个可能实例。如果它不适用于您,则是因为您没有引用正确的命名空间。“使用System.Linq;”应该足够让它工作了。好的,谢谢,我没有想到添加LINQ名称空间,它现在可以工作了。嗨@Jon,关于这个主题,也许你可以帮我做点什么。(再看一次帖子)
var sum = items.Sum(i => i.Count);