簡體   English   中英

如何將 linq orderby 與 group by 一起使用

[英]How to use linq orderby with a group by

我在下面有一個查詢,我想在 t.day 之前訂購。 我是 linq 的新手。 在下面的這個查詢中,我在哪里放置 orderby t.day? 謝謝。

        var pracResult = (from t in queryResult
                            group t by new {t.RouteNbr, t.Day,t.NumberOfActionPlans,t.RouteNbrPlusDay}
                            into grp                                     
                            select new
                            {
                                grp.Key.RouteNbr,
                                grp.Key.Day,
                                grp.Key.NumberOfActionPlans,
                                grp.Key.RouteNbrPlusDay,
                            }).ToList();


        //orderby t.Day

我不明白您為什么再次將您的群組轉換為他們的密鑰。 如果您打算訂購您可以使用的群組,

var pracResult = (from t in queryResult
                        group t by new {t.RouteNbr,  t.Day,t.NumberOfActionPlans,t.RouteNbrPlusDay}
                        into grp 
                        orderby grp.Key.Day                                    
                        ).ToList();

否則,如果您想要完全等效的代碼,為什么不這樣做,

var pracResult = queryResult.Select(i => new {i.RouteNbr, i.Day, i.NumberOfActionPlans, i.RouteNbrPlusDay})
                        .Distinct() 
                        .OrderBy(k => k.Day)
                        .ToList();

你可以加

orderby krp.Key.Day

在 group 子句之后。

嘗試這個:

 var pracResult = queryResult.GroupBy(t => new {t.RouteNbr, t.Day,t.NumberOfActionPlans,t.RouteNbrPlusDay})
                             .OrderBy(l => l.Key.Day)
                             .Select(grp =>new{ grp.Key.RouteNbr,
                                                 grp.Key.Day,
                                                 grp.Key.NumberOfActionPlans,
                                                 grp.Key.RouteNbrPlusDay}).ToList();

暫無
暫無

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

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