LINQ按小时分组并添加缺少的整数值

时间:2017-02-22 20:46:35

标签: c# linq group-by

我写了如下代码:

var hourlyData = ctx.Transactions
      .GroupBy(x => x.TransactionDate.Value.Hour)
      .Select(pr => new HourlyGraph { 
          Hour = pr.Key,
          Sales = pr.Sum(x => x.QuantitySoldTransaction)
      }).OrderBy(x => x.Hour).ToList();

hourlyData.AddRange(Enumerable.Range(0, 23).Except(hourlyData.Select(m => m.Hour))
          .Select(i => new HourlyGraph() { Hour = i, Sales =0 }));

基本上我要做的是将所有交易从0-23(小时)分组,然后添加缺少的整数值(小时)。那些想念的人我想分配价值 - 缺少时间(22让我们说和销售0)。

我写的上面的方法给了我完全错误的价值......

P.S。我多次获得22个值,即使它不应该在那里...... 22应该只重复一次(或任何其他小时值)......

0 个答案:

没有答案