Muszę zgrupować moje dane przez każdą minutę dnia i uzyskać liczbę zdarzeń, które miały miejsce w tej minucie. Obecnie mam:C# uzyskać minutę od daty w grupie linq przez
items.GroupBy(x => new
{
x.date.Minute,
x.date.Hour
})
.Select(x => new TransferObject
{
Minute = x.Key.Minute,
Hour = x.Key.Hour,
Count = x.Count(),
Day = date
}).OrderBy(x => x.Hour).ThenBy(x => x.Minute).ToList();
to robi to, co muszę, ale problemem jest to, że nie może mieć punktów danych dla każdej chwili, w jaki sposób mogę dodać 0 do Count
pole jeżeli nie mam danych dla tej chwili ? Ewentualnie mogę dodać numer minutowy (0 ... 1440) i później uzupełnić brakujące wartości.
EDIT
Rozwiązanie obecnie grupy jedynie datą startu, ale że obiekt rzeczywiście ma pole end_date
. Zasadniczo w tej chwili mam wszystkie wydarzenia, które rozpoczęły się w tej chwili, ale muszę uzyskać liczbę zdarzeń, które były w tej chwili uruchomione.
Dane Mam zawiera:
date end_date
2015-05-15 09:52:15.650 2015-05-15 09:55:38.097
2015-05-15 09:52:15.633 2015-05-15 09:52:16.097
2015-05-15 09:52:11.633 2015-05-15 09:52:13.047
2015-05-15 09:51:49.097 2015-05-15 09:55:17.687
2015-05-15 09:51:49.087 2015-05-15 09:56:17.510
W tej chwili nie użyć pola end_date
więc wyjście jest
{Count:2;Hour:9;Minute:51}
{Count:3;Hour:9;Minute:52}
muszę mieć wszystkie zdarzenia, które zostały uruchomione, coś
{Count:2;Hour:9;Minute:51}
{Count:5;Hour:9;Minute:52}
{Count:3;Hour:9;Minute:53}
{Count:3;Hour:9;Minute:54}
{Count:3;Hour:9;Minute:55}
{Count:2;Hour:9;Minute:56}
Zobacz zaktualizowaną odpowiedź. – Jamiec