【发布时间】:2021-09-23 13:10:56
【问题描述】:
我正在尝试按类别将总数相加,但在页面 cshtml 中没有得到正确的结果。
我试过了:
<span style="font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif !important ; font-size: 18px !important ; color: #4CAF50 !important ; font-weight: 700 !important ; float: right !important">
Total:
<span style="color: #212121 !important">
@{
var agrupamentoPorCategoria = Model.itens.GroupBy(c => c.idCategoria);
string totalPorCategoria = "";
foreach (var itensPorCategoria in agrupamentoPorCategoria)
{
totalPorCategoria = itensPorCategoria.Sum(s => s.vSubTotal).ToString("N2");
}
//var totalPorCategoria = Model.itens.Sum(s => s.vSubTotal);
}
@totalPorCategoria
</span>
</span>
预期结果是通过对类别进行分组来汇总小计列。
在上图中的示例中,该值必须为 5,557.55
【问题讨论】:
-
你的循环将只取最后一个分组并将其相加。相反,您需要过滤当前类别并对其进行求和。像
var totalPorCategoria = Model.itens.Where(c => c.idCategoria == currentId).Sum(s => s.vSubTotal);这样的东西。或者你真的应该先进行分组,然后遍历组并为每个组创建输出并在最后计算总和。我们需要查看更多代码来了解您当前的处理方式。 -
谢谢,效果很好!将您的解决方案作为我发出信号的答案。