2

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

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

销售列表中的项目如下所示:

销售ID | 售出日期 | 产品编号 | 店铺编号

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

所以我认为我应该做的是按天分组销售,计算每天的数量,然后评估哪个数字最高,但是我不确定该怎么做。

任何人都可以帮忙吗?

4

3 回答 3

12

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

salesByDay = sales.GroupBy(s => s.DateSold).OrderBy(g => g.Count());
于 2012-08-15T14:54:32.853 回答
1

如果您将已售商品的确切日期时间设置为 DateSold,您可能希望使用 Date 部分并按其分组

from sale in sales
group sale by sale.DateSold.Date into grouped
orderby grouped.Count()
select new {Date = grouped.Key, Count = grouped.Count()};
于 2012-08-15T14:56:01.330 回答
0

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

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

于 2012-08-15T14:58:49.820 回答