gpt4 book ai didi

c# - 在一个 LINQ 查询中获取两列的总和

转载 作者:IT王子 更新时间:2023-10-29 03:45:17 24 4
gpt4 key购买 nike

假设我有一张名为项目(ID int、Done int、Total int)

我可以通过两个查询来完成:

int total = m.Items.Sum(p=>p.Total)
int done = m.Items.Sum(p=>p.Done)

但我想在一个查询中完成,像这样:

var x = from p in m.Items select new { Sum(p.Total), Sum(p.Done)};

当然有一种方法可以从 LINQ 语法调用聚合函数...?

最佳答案

这样就可以了:

LINQ 查询语法:

from p in m.Items
group p by 1 into g
select new
{
SumTotal = g.Sum(x => x.Total),
SumDone = g.Sum(x => x.Done)
};

LINQ 方法语法:

m.Items
.GroupBy(r => 1)
.Select(g => new
{
SumTotal = g.Sum(x => x.Total),
SumDone = g.Sum(x => x.Done)
});

请注意,此解决方案(两种语法)返回一个包含 1 项的列表,因此您可能希望在末尾添加:

 .FirstOrDefault();

关于c# - 在一个 LINQ 查询中获取两列的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2432281/

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