【发布时间】:2016-07-12 18:01:48
【问题描述】:
我正在尝试按小时对记录列表进行分组并存储每小时的记录数。这是我的代码:
DateTime firstTimeStamp = myRecords.DataBaseRecords.First().TimeStamp;
Statistics = myRecords.DataBaseRecords
.GroupBy(x => x.TimeStamp.Hour)
.Select(group => new GraphModel() { Date =firstTimeStamp.AddHours(group.Key), Value = group.Count() })
.ToList();
问题是,当我使用 select 功能时,我无法再访问 DateTime,因此字段 group.key 包含一个介于 0 和 24 之间的值。我只需要按小时和每小时对所有记录进行分组,我需要在Value参数中有记录数。
【问题讨论】:
-
为什么不呢?会发生什么?
-
它实际上不会返回大于 24 的小时,因此如果例如下一个日期时间在 3 天内,它不会返回 82 小时但会返回 0 :/
-
您对它有什么期望?当您花费一个小时时,它将返回一个从 0 到 23 的值。日期是一个单独的值。
-
是的,但如果我确实使用了按小时分组,我无法在选择中获取日期
-
而不是
x.TimeStamp.Hour,使用(int)Math.Truncate(x.TimeStamp.TotalHours)。
标签: c# .net linq datetime request