Я полагаю, вы ищете SelectMany
и GroupBy
:
var result = m
.SelectMany(ll => ll)
.GroupBy(h => h.hour)
.Select(g => new hourly
{
hour = g.Key,
blocks = g.Sum(h => h.blocks),
clicks = g.Sum(h => h.clicks)
})
.ToList();
Если в вашем БД нет экземпляров hourly
на какой-то конкретный час, и вам нужно иметь все в конечном результате, вы можете добавить пустышки после SelectMany
, например:
.Concat(Enumerable.Range(0, 24).Select(i => new hourly {hour = i}))
Если порядок важен, примените OrderBy
перед ToList
.