我试图了解如何使用LINQ按时间间隔对数据进行分组; 然后理想地聚合每个组.
查找具有明确日期范围的众多示例,我正在尝试按时段分组,例如5分钟,1小时,1天.
例如,我有一个用Date包装DateTime的类:
public class Sample
{
public DateTime timestamp;
public double value;
}
Run Code Online (Sandbox Code Playgroud)
这些观察结果包含在List集合中的一系列中:
List<Sample> series;
Run Code Online (Sandbox Code Playgroud)
因此,按小时分组和按平均值计算总值,我正在尝试执行以下操作:
var grouped = from s in series
group s by new TimeSpan(1, 0, 0) into g
select new { timestamp = g.Key, value = g.Average(s => s.value };
Run Code Online (Sandbox Code Playgroud)
这基本上是有缺陷的,因为它将TimeSpan本身分组.我无法理解如何在查询中使用TimeSpan(或表示间隔的任何数据类型).