gpt4 book ai didi

c# - 如何编写结合 group by 和聚合的 LINQ 查询?

转载 作者:行者123 更新时间:2023-12-02 12:00:55 25 4
gpt4 key购买 nike

给定以下输入,如何编写 LINQ 查询或表达式来返回数量的聚合结果集?

输入:

var foo = new[] { new { PO = "1", Line = 2, QTY = 0.5000 }, 
new { PO = "1", Line = 2, QTY = 0.2500 },
new { PO = "1", Line = 2, QTY = 0.1000 },
new { PO = "1", Line = 2, QTY = -0.1000 }
}.ToList();

期望的结果:

类似的东西

new { PO = "1", Line = 2, QTY = 0.7500 } // .5 + .25 + .1 + -.1

我该如何为多行编写它(请参阅 foo 中的对象模型)?

最佳答案

这个怎么样:

var result = foo.GroupBy(x => x.Line)
.Select(g => new { PO = g.First().PO,
Line = g.Key,
QTY = g.Sum(x => x.QTY) });

如果您只有一行,只需添加一个 .Single() - result 是定义的匿名类型的 IEnumerable当您设置 foo 时。

编辑:

如果 PO 和线路都应指定不同的组(PO 可以具有不同的值),则它们都必须是组键的一部分:

var result = foo.GroupBy(x => new { x.PO, x.Line})
.Select(g => new {
PO = g.Key.PO,
Line = g.Key.Line,
QTY = g.Sum(x => x.QTY)
});

关于c# - 如何编写结合 group by 和聚合的 LINQ 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5905373/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com