简体   繁体   English

如何将 linq orderby 与 group by 一起使用

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

I have a query below and I will like to orderby t.day.我在下面有一个查询,我想在 t.day 之前订购。 I am new to linq.我是 linq 的新手。 Where do I put the orderby t.day in this query below?在下面的这个查询中,我在哪里放置 orderby t.day? Thanks.谢谢。

        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

I did not understand why you again converted your groups to their keys.我不明白您为什么再次将您的群组转换为他们的密钥。 If you intend to order your groups you can use,如果您打算订购您可以使用的群组,

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();

Else if you want exact equivalent of your code why not just doing this,否则,如果您想要完全等效的代码,为什么不这样做,

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

You can add你可以加

orderby krp.Key.Day

after the group clause.在 group 子句之后。

Try this:尝试这个:

 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