C# - 如何从列表中找到最常见的日期

时间:2012-08-15 14:52:00

标签: c# linq group-by

我似乎画了一个空白。我有一个销售清单,检索如下:

List<Sales> sales = ctn.Sales.Where(s => s.DateSold >= request.FromDate && s.DateSold <= request.ToDate).ToList();

销售清单中的项目如下所示:

  

SaleID | DateSold | ProductID | ShopID

作为报告的一部分,我想向用户返回一个简单的字符串,通知他们哪一天哪一天往往卖得最多。

所以我认为我应该做的是按天分组销售,计算每天的数量,然后评估哪个数量最多,但我不确定如何做到这一点。

有人可以帮忙吗?

3 个答案:

答案 0 :(得分:12)

您只需要对DateSold进行分组,然后按计数排序(告诉您有多少项属于该组):

salesByDay = sales.GroupBy(s => s.DateSold).OrderBy(g => g.Count());

答案 1 :(得分:1)

如果您将已售商品的确切日期时间设置为DateSold,则可能需要按日期部分和分组

from sale in sales
group sale by sale.DateSold.Date into grouped
orderby grouped.Count()
select new {Date = grouped.Key, Count = grouped.Count()};

答案 2 :(得分:0)

这将为您提供销售最多的日期:

sales.GroupBy(x => x.DateSold).OrderByDescending(g => g.Count()).FirstOrDefault().Key;