我正在玩LINQ,我想知道按分钟分组是多么容易,但我不想每分钟一次,而是每5分钟分组一次.
例如,目前我有:
var q = (from cr in JK_ChallengeResponses
where cr.Challenge_id == 114
group cr.Challenge_id
by new { cr.Updated_date.Date, cr.Updated_date.Hour, cr.Updated_date.Minute }
into g
select new {
Day = new DateTime(g.Key.Date.Year, g.Key.Date.Month, g.Key.Date.Day, g.Key.Hour, g.Key.Minute, 0),
Total = g.Count()
}).OrderBy(x => x.Day);
Run Code Online (Sandbox Code Playgroud)

我每隔5分钟要对结果进行分组怎么办?
mel*_*okb 14
要按n某种方式分组,您可以使用以下公式来创建"存储桶":
((int)(total / bucket_size)) * bucket_size
Run Code Online (Sandbox Code Playgroud)
这将取总数,除以它,转换为整数以丢弃任何小数,然后再次相乘,最终得到倍数bucket_size.所以例如(/是整数除法,因此不需要强制转换):
group cr.Challenge_id
by new { cr.Updated_Date.Year, cr.Updated_Date.Month,
cr.Updated_Date.Day, cr.Updated_Date.Hour,
Minute = (cr.Updated_Date.Minute / 5) * 5 }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1629 次 |
| 最近记录: |