gpt4 book ai didi

c# - 按具有不同 Where 条件的两个字段对数据表进行分组和求和

转载 作者:太空狗 更新时间:2023-10-30 01:17:21 25 4
gpt4 key购买 nike

我有一个数据表,其中包含如下示例数据。

UserName    IsBillable    Hours
-----------------------------
user1 Yes 10
user2 Yes 15
user3 No 20
user1 Yes 25
user1 No 15
user2 Yes 10

我想按 IsBillable 分组并与 Hours 列求和。

UserName    Billable    NonBillable
-----------------------------
user1 35 15
user2 25 0
user3 0 20

我如何使用 LINQ 做到这一点?

最佳答案

你可以尝试这样的事情:

var grouped = dt.AsEnumerable()
.GroupBy(row=> row.Field<string>("UserName"))
.Select(gr=> new
{
UserName = gr.Key,
Billable = gr.Where(row=>row.Field<string>("IsBillable")=="Yes")
.Sum(row=>row.Field<int>("Hours"),
NonBillable = gr.Where(row=>row.Field<string>("IsBillable")=="No")
.Sum(row=>row.Field<int>("Hours"),
});

我假设 dt 是您的数据表,您只需要一系列具有三个属性的项目 UserNameBillable不可计费。如果你需要你的结果是一个数据表,你需要一些额外的工作。如果是这样,请告诉我。

我们上面所做的,很简单。最初我们根据用户名对结果进行分组,然后过滤每组的项目,以计算相应的总和。

关于c# - 按具有不同 Where 条件的两个字段对数据表进行分组和求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32047225/

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