查询以大多数操作返回小时

时间:2013-02-17 13:39:27

标签: c# linq

我正在运行查询以查找" st小时#34;最佳小时=小时订单最多。
我试着:

   public void ShowBestHour()
    {
        using (NorthwindDataContext db = new NorthwindDataContext())
        {
            var query=
                from z in db.Order_Details
                select new
                {
                    bestHour = z.Order.OrderDate.Value.Hour.Count()
                }; 
        }
    }

我应该怎么做?

2 个答案:

答案 0 :(得分:1)

试试这个:

public void ShowBestHour()
{
    using (NorthwindDataContext db = new NorthwindDataContext())
    {            
        var bestHour = db.Order_Details.GroupBy(x => x.Order.OrderDate.Value.Hour).OrderByDescending(x => x.Count()).Select(x => x.Key).First();
    }
}

答案 1 :(得分:0)

解决方案应该使用 let 子句帮助。

因此,按计数分组,使用let计数变量,然后在此变量上排序。 这个问题与你的问题类似:

How to get the Max() of a Count() with LINQ