【发布时间】:2015-07-18 19:28:46
【问题描述】:
我有一个我想按数量订购的字符串列表。该列表包含带有日期时间值的 Order-CreationDate 列表。我正在将此值转换为字符串,因为我稍后会需要它。
我当前的输出是一个如下所示的 CreationDate 列表。
2014-04-05
2014-04-05
2014-04-05
2014-04-05
2014-04-06
2014-04-06
2014-04-06
...
我得到了预期的日期列表,但我想按日期对日期数进行分组。这意味着我需要另一个具有总订单数的变量。我尝试使用 for 循环和 linq 查询创建一个新变量,但没有得到我想要的结果。
如何获取CreationDate 的订单数量?我需要按CreationDate 计算订单总数,但我找不到这样做的方法。
预期的输出是:
2014-04-05 4 - representing 4 orders that date
2014-04-06 3 - representing 3 orders that date.
这是我的代码的样子:
List<string> TotalOrdersPaid = new List<string>();
foreach (var order in orders)
{
if (order.PaymentStatus == PaymentStatus.Paid)
{
string Created = order.CreatedOnUtc.Date.ToString("yyyy-MM-dd");
order.CreatedOnUtc = DateTime.ParseExact(Created, "yyyy-MM-dd", CultureInfo.InvariantCulture);
TotalOrdersPaid.Add(Created);
}
}
例如TotalOrdersPaid 应该包含一个列表,其中包含CreationDate 的订单数。
有什么好的方法可以做到这一点?
谢谢
【问题讨论】:
-
你能检查一下这是否有效吗?
var grouppedDate = TotalOrdersPaid.GroupBy(x => x.Created); -
尝试了几乎相同的事情:orders.OrderBy(x => order.CreatedOnUtc);不工作或我做错了。我得到了一份清单,但订单数量非常多