如何从查询关键字中求和

问题描述 投票:0回答:1

我正在计算金额值并将其存储到查询中:

var totalAmounts = products
    .Where(p => p.ProductType == ProductType.ValueType)
    .GroupBy(p => new { p.OfficeId, p.OfficeDate, p.PaymentMethod }) 
    .ToLookup(x => x.Key.OfficeId, x => x.Sum(p => p.Amount));

结果如下:

enter image description here

某些Key和十进制值。

现在我在我的代码中使用它:

var result = products.Select(p => new ResponseDto()
{
    customer_id = p.CustomerId, 
    office__date = p.OfficeDate.Value.ToString(),
    office__id = p.OfficeId.ToString(),
    office__total = totalAmounts[p.OfficeId].FirstOrDefault().ToString(),
    payment_method = p.PaymentMethod.Value.ToString(),
}).ToList();

但是,这当然给了我2100而不是3599的值。

所以,基本上我的问题是如何从密钥中求和这两个值?

c# linq group-by sum lookup
1个回答
0
投票

尝试一下:

var result = products.Select(p => new ResponseDto()
{
    customer_id = p.CustomerId, 
    office__date = p.OfficeDate.Value.ToString(),
    office__id = p.OfficeId.ToString(),
    office__total = totalAmounts[p.OfficeId].Sum().ToString(),
    payment_method = p.PaymentMethod.Value.ToString(),
}).ToList();
© www.soinside.com 2019 - 2024. All rights reserved.