首页 > 解决方案 > View 中的 LINQ 查询以升序或降序排列类别的金额总和

问题描述

我有一个带有交易列表的模型。每笔交易都有类别和交易金额。

在我的视图页面中,我正在从模型创建一个表格,该表格显示在表格的每一行中:

类别 1 - SumofTransactionAmounts1

Category2 - SumofTransactionAmounts2

Category3 - SumofTransactionAmounts3

我能够做到这一点。但是,如何通过 SumofTransactionAmounts 的升序/降序对行进行排序?

    @foreach (var item in Model.MyTransactions.groupby(x => x.Category).ToList())
{
<tr>
<td>@item.key</td>
<td>@Model.MyTransactions.Where(x => x.Category == item.key).ToList().Sum(x => x.TransactionAmount)</td>
</tr>
}

标签: c#linqmodel-view-controller

解决方案


您可以通过以下命令来实现它IEnumerable<IGrouping<>>

@foreach (var item in Model.MyTransactions.GroupBy(x => x.Category).OrderBy(g => g.ToList().Sum(i => i.TransactionAmount)))
{
    <tr>
        <td>@item.key</td>
        <td>@item.ToList().Sum(x => x.TransactionAmount)</td>
    </tr>
}

推荐阅读