Я пытаюсь понять, как LINQ можно использовать для группировки данных через интервалы времени; а затем идеально агрегировать каждую группу.
Поиск многочисленных примеров с явными диапазонами дат, я пытаюсь группировать по периодам, таким как 5 минут, 1 час, 1 день.
Например, у меня есть класс, который обертывает DateTime со значением:
public class Sample
{
public DateTime timestamp;
public double value;
}
Эти наблюдения содержатся в виде серии в коллекции List:
List<Sample> series;
Итак, чтобы группировать почасовые периоды времени и суммарное значение в среднем, я пытаюсь сделать что-то вроде:
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 };
Это принципиально ошибочно, поскольку он группирует сам TimeSpan. Я не могу понять, как использовать TimeSpan (или любой тип данных, представляющий интервал) в запросе.