簡體   English   中英

使用LINQ的GroupBy和OrderBy

[英]GroupBy and OrderBy using LINQ

我使用linq從數據庫獲取數據。 我想在同一請求上使用GroupBy和OrderBy。

我實際上有此代碼不起作用:

var mydata = _db.table1
    .Join(_db.table2, h => h.col1, t => t.col2, 
        (h, t) => new ActivatedScripts() 
        {
            col1 = h.col1, col2 = h.col2, col3 = (t.col3 == "Y"), col4 = "" 
        })
    .GroupBy(z => z.col1).OrderBy(s => s.....);

OrderBy(s => s...)建議我所有LINQ方法和一個著名的KEY,它與我的代碼中的任何列都不匹配。

編輯:

我按照官方指南對表格進行排序( http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/sorting-filtering-and-paging-with-the-entity-框架在asp-net-mvc應用程序中 )。

當我groupBy然后排序(我試圖先排序然后groupby)時,我有一個異常:

在此處輸入圖片說明

GroupBy方法返回組的集合。 您可以輕松地對col1列進行排序,因為那是每個組的Key屬性:

.OrderBy(s => s.Key)

如果要對其他任何內容進行排序,則必須從組中的項目中獲取該值。 例如,如果您知道每個組中所有項目的值都相同,則可以從該組中的第一個項目獲取該值:

.OrderBy(s => s.First().col2)

您還可以使用聚合來計算組中所有項目的值,例如,對值的總和進行排序:

.OrderBy(s => s.Sum(x => x.col2))

您始終可以先訂購,然后對訂購的數據進行分組:

.Join(...).OrderBy(x => x.col1).GroupBy(x => x.col2)

暫無
暫無

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

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