来自具有相同 属性 个值的集合的 Select 个对象

Select objects from a collection with same property values

有没有简单的方法 select 具有相同 currencyId 的成员,以便我可以将它们相互求和,或者如果每个 currencyId 都有,我是否需要做其他事情?

if(model.CurrencyId == -1)
        {
            resultModel.Add(new ReportModel
            {
                AccountName = "Sum",
                BalanceSum = resultModel.Where(q => q.CurrencyId == 1).Sum(q => q.Balance)

            });
        }
        else
        {
            resultModel.Add(new ReportModel
            {
                AccountName = "Sum",
                BalanceSum = resultModel.Sum(q => q.Balance)

            });
        }

要获得每种货币的余额总和,您可以执行 groupBy,然后是 select & sum

例如:

var balanceSum = t.GroupBy(q => q.CurrencyId)
    .Select(q => q.Sum(x => x.Balance));

要将其添加到 resultModel,您可以执行以下操作:

var reportData = t.GroupBy(q => q.CurrencyId)
    .Select(q => new ReportModel()
    {
        AccountName = "Sum",
        BalanceSum = q.Sum(x => x.Balance)
    });

resultModel.AddRange(reportData);

如果数据只分配给resultModel一次,那么你可以用equals替换AddRange。