可迭代对象:减少为单个值

时间:2018-06-14 16:41:22

标签: c# aggregate reduce accumulate

有没有办法将可迭代对象减少为单个值?在javascript中,这可以这样做:



var array = [{num: 1}, {num: 10}, {num: 5}];

var result = array.reduce((cur, val) => val.num > cur ? val.num : cur, 0);
    
console.log(result);




以上将返回对象数组中的最大数字。

目前在C#我使用foreach来查找最大的项目,但是内置函数是否与上面的javascript reduce方法类似?

1 个答案:

答案 0 :(得分:2)

LINQ中等效的reduce是Aggregate

var nums = Enumerable.Range(0, 10);

var max = nums.Aggregate(Int32.MinValue, (acc,elem) => acc < elem ? elem : acc);