我正在计算金额值并将其存储到查询中:
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));
结果如下:
某些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
的值。
所以,基本上我的问题是如何从密钥中求和这两个值?
尝试一下:
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();