如何通过分组对列表进行+(求和)操作

How to do a + (sum) operation on a list by grouping

我正在尝试按类别将总计相加,但在页面 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

您需要select所有项目然后进行求和。这应该有效:

var totalPorCategoria = Model.itens.Where(c => c.idCategoria == currentId).Sum(s => s.vSubTotal);