我需要使用 lambda 表达式在列表中显示累计和。你知道我该怎么做吗? 我有这个返回:
[
{
"dt_created": "2018-02-25",
"qtNewItens": 1
},
{
"dt_created": "2018-02-26",
"qtNewItens": 1
},
{
"dt_created": "2018-02-27",
"qtNewItens": 2
}
]
但我必须显示这个:
[
{
"dt_created": "2018-02-25",
"qtNewItens": 1
},
{
"dt_created": "2018-02-26",
"qtNewItens": 2
},
{
"dt_created": "2018-02-27",
"qtNewItens": 4
}
]
我不知道是否可以使用 GroupBy 或聚合
我尝试过这样的事情,但它是错误的:
var newItensByDay = ctx.Itens
.GroupBy(x => new { Data = x.dt_created, x.Id })
.Select(g => new {
Qt = g.Select(x => x.Id).Count(),
Dt_created = g.Select(x => x.dt_created).FirstOrDefault()
})
.GroupBy(x => new { x.Qt, x.Dt_created })
.Select(grp => new {
dt_created = grp.Key.Dt_created,
qtNewItens = grp.Sum(x => x.Qt)
});
最佳答案
考虑以下分组后的累积选择
var itemsByDay = ctx.Itens
.GroupBy(x => x.dt_created)
.Select(g => new {
Qt = g.Count(),
Dt_created = g.Key
});
var count = 0;
var cumulativeByDay = itemsByDay.Select(x => {
count += x.Qt;
var result = new {
dt_created = x.Dt_created,
qtNewItens = count
};
return result;
});
关于c# - 具有 lambda 表达式的对象列表中的累积和 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49041215/