【问题标题】:How can i use LINQ Aggregate here? [duplicate]我如何在这里使用 LINQ 聚合? [复制]
【发布时间】:2015-03-27 10:08:52
【问题描述】:

我想使用 LINQ Aggregate 将以下代码优化为 1 行,但之前从未使用过 Aggregate 函数,尽管我尝试过,但我无法使其工作..

var sum = Aggregate(0.0, (group) => group.width + ????);

而不是

double sum = 0.0;
double height = 1.0;
foreach (var group in Groups)
{
sum = sum + group.width;
}

var rectPosition = new Rectangular(anchor.x, anchor.y,new BoxDimension(sum, height ));

请提供任何帮助.. 在此先感谢

【问题讨论】:

    标签: c# linq


    【解决方案1】:

    说实话,这就够了:

    var sum = Groups.Select(x => x.Width).Sum();
    var sum = Groups.Sum(x => x.Width);
    

    但是,如果你想要Aggregate():

    var sum = Groups.Select(x => x.Width).Aggregate((current, next) => current += next);
    

    【讨论】:

    • 天哪!多么容易......对不起,今天是星期五,我已经准备好周末了!
    • @FatGiant 不错的评论。
    猜你喜欢
    • 2011-07-31
    • 1970-01-01
    • 1970-01-01
    • 2018-12-16
    • 1970-01-01
    • 1970-01-01
    • 2018-11-08
    • 2011-03-29
    • 2016-08-05
    相关资源
    最近更新 更多