CreationTime是DateTime类型
group by 年/月/日/小时
group by 年
1 2 3 4 5 6 7 8 9 10 11 12 | ( from d in YourData.OrderBy(x => x.CreationTime) group d by new { time = new { d.CreationTime.Year } } into g select new { AverageValue = g.Average(p => p.Value), CreationTimeStr = g.Key.time.Year, MaxValue = g.Max(x => x.Value), MinValue = g.Min(x => x.Value) }).ToList(); |
group by 小时
1 2 3 4 5 6 7 8 9 10 11 12 | ( from d in YourData.OrderBy(x => x.CreationTime) group d by new { time = new { d.CreationTime.Year, d.CreationTime.Month, d.CreationTime.Day,d.CreationTime.Hour } } into g select new { AverageValue = g.Average(p => p.Value), CreationTimeStr = g.Key.time.Year + "-" + g.Key.time.Month + "-" + g.Key.time.Day+ " " +g.Key.time.Hour+ ":00:00" , MaxValue = g.Max(x => x.Value), MinValue = g.Min(x => x.Value) }).ToList(); |
其他类推
group by 半小时
group by 半小时=group by 30分钟
1 2 3 4 5 6 7 8 9 10 11 12 | ( from d in YourData.OrderBy(x => x.CreationTime) group d by new { time = new { d.CreationTime.Year, d.CreationTime.Month, d.CreationTime.Day, d.CreationTime.Hour, Minute = (d.CreationTime.Minute / 30) * 30 } } into g select new { Value = g.Average(p => p.Value), CreationTimeStr = g.Key.time.Year + "-" + g.Key.time.Month + "-" + g.Key.time.Day + " " + g.Key.time.Hour + ":" +g.Key.time.Minute.ToString().PadRight(2, '0' )+ ":00" , MaxValue = g.Max(x => x.Value), MinValue = g.Min(x => x.Value) }).ToList(); |
参考资料:https://stackoverflow.com/questions/12060743/grouping-by-every-n-minutes
分类:
Asp.Net/C#
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix