簡體   English   中英

View 中的 LINQ 查詢以按升序或降序排列類別的金額總和

[英]LINQ query in View to order sum of amounts for category in ascending or descending order

我有一個帶有交易列表的模型。 每筆交易都有類別和交易金額。

在我的視圖頁面中,我正在從模型創建一個表,該表顯示在表的每一行中:

類別 1 - SumofTransactionAmounts1

類別 2 - SumofTransactionAmounts2

類別 3 - 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>
}

您可以通過像這樣訂購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>
}

像這樣在 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)
{
    <tr>
    <td>@item.Category</td>
    <td>@item.Sum</td>
    </tr>
}

通過這種方式,您可以在頁面的任何位置訪問 ListItems

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM