【发布时间】:2015-04-18 05:00:14
【问题描述】:
我有一个包含如下数据的数据表:
name Code dateAndTime
ab01 3hdfj3 2012-06-24 14:17:32.833
ab02 57dfdf 2012-07-12 14:08:28.210
ab02 57dfdf 2012-07-12 14:08:28.210
ab02 57dfdf 2012-07-12 15:08:28.210
ab03 57dfdf 2012-07-12 14:08:28.210
ab03 9jdhfj 2012-07-12 15:15:12.007
etc....
现在我想通过 LINQ 从数据表中过滤数据。我想按小时获取记录组的计数。我的一天从 7 点开始,到第二天的 7 点结束。所以,我想按小时分组获取 24 小时的数据。这是第一个条件。
第二个条件是,我希望数据也按代码分组。所以条件变成了这样:
表:
Name 7 OClock 8 O Clock 9 O Clock etc.....
ab01 56 75 88
ab02 45 45 77
ab03 57 66 67
etc...
在生成的上表中,列应按小时递增组,行应按名称递增组。我得到了当前代码来按小时分组列数。此处为 DataTable 的“dt”
var query = dt.AsEnumerable()
.GroupBy(row => row.Field<DateTime>("dateAndTime").Hour)
.Select(grp => new
{
Hour = grp.Key,
Count = grp.Count()
});
foreach (var x in query)
{
}
}
我怎样才能达到上述条件?
【问题讨论】: