【发布时间】:2018-03-01 01:19:18
【问题描述】:
我需要使用 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 或 Aggregate
我尝试了这样的方法,但它是错误的:
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)
});
【问题讨论】:
-
输出是否应该有 TotalItemsToDate 字段而不是 NewItems 字段?
-
您是否按 dt_created 进行分组,因为它们可能不是唯一的(并且按顺序)?