在视图中使用LINQ查询以按类别汇总金额的升序或降序排序。

14 浏览
0 Comments

在视图中使用LINQ查询以按类别汇总金额的升序或降序排序。

我有一个带有交易列表的模型。

每个交易都有类别和交易金额。

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

类别1 - 交易金额之和1

类别2 - 交易金额之和2

类别3 - 交易金额之和3

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

    @foreach (var item in Model.MyTransactions.groupby(x => x.Category).ToList())
{@item.key

 

@Model.MyTransactions.Where(x => x.Category == item.key).ToList().Sum(x => x.TransactionAmount)

 

}

admin 更改状态以发布 2023年5月23日
0
0 Comments

您可以通过按如下方式对IEnumerable>进行排序来实现:

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

0
0 Comments

在Razor页面中创建本地列表,类似于下面这样的样式,

@{var ListItems = (Model.MyTransactions.groupby(x => x.Category).select(item => new {
    Category = item.key,
    Sum = item.Sum(x => x.TransactionAmount)
}).OrderBy(e=> e.Sum).ToList();}

ForEach中使用它

@foreach (var item in ListItems)
{
    
    @item.Category
    @item.Sum
    
}

这样,您可以随时在页面上访问ListItems

0