我有一个数据表,其列是名称,代码,dateAndTime.现在我希望使用LINQ获取一天中每小时所有记录的计数.
DateTime列包含数据
2014-08-01 07:00:06.163
2014-08-01 07:00:11.873
2014-08-01 07:00:42.623
2014-08-01 07:00:48.363
2014-08-01 07:01:15.243
2014-08-01 07:01:16.507
Run Code Online (Sandbox Code Playgroud)
现在我想得到从一天开始到每天每小时结束的所有记录的计数.
示例是:
7 O Clock : 56 Records
8 O Clock : 90 Records
..
..
etc.
Run Code Online (Sandbox Code Playgroud)
如何通过LINQ实现?
Hab*_*bib 11
如果您的列类型是,DateTime那么您可以按其Hour属性进行分组并获取每小时的计数,如:
var query = dt.AsEnumerable()
.GroupBy(row => row.Field<DateTime>("dateAndTime").Hour)
.Select(grp => new
{
Hour = grp.Key,
Count = grp.Count()
});
Run Code Online (Sandbox Code Playgroud)
dt你的位置在哪里DataTable
编辑:只要你有一个日期的数据,上面应该工作DataTable,但如果你有多个日期的行,那么分组应该完成Date,Hour如:
var query = dt.AsEnumerable()
.GroupBy(row => new
{
Date = row.Field<DateTime>("dateAndTime").Date,
Hour = row.Field<DateTime>("dateAndTime").Hour
})
.Select(grp => new
{
Date = grp.Key.Date,
Hour = grp.Key.Hour,
Count = grp.Count()
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5480 次 |
| 最近记录: |