c# - 具有 lambda 表达式的对象列表中的累积和 C#

标签 c# lambda sum aggregate

我需要使用 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/

相关文章:

c# optimizing cycle working with big numbers 工作大数

c# - 自定义 JSON 序列化/反序列化以多种可能的格式读取属性

c# - 使用 LINQ 进行简单的语言识别

r - 在R中是否可以按以下方式将两个向量或矩阵与向量相乘?

sql-server - SQL 服务器 : Case Statement Sum

c# - 初学者帮助C#在文本框中显示文件路径

c# - 在单元格的右下角添加标签

python - Python 中带有条件的 lambda

c# - λ "cannot be inferred from the usage"

MYSQL Toplist 按团队成员积分总和