Ich muss meine Daten nach jeder Minute des Tages gruppieren und die Anzahl der Ereignisse ermitteln, die während dieser Minute aufgetreten sind. Ich habe derzeit:
%Vor% Das tut, was ich brauche, aber das Problem ist, dass ich möglicherweise keine Datenpunkte für jede Minute habe. Wie kann ich 0 zum Count
-Feld hinzufügen, wenn ich keine Daten für diese Minute habe? Alternativ könnte ich eine kleine Zahl (0 ... 1440) hinzufügen und die fehlenden Werte später hinzufügen.
Die Lösung gruppiert derzeit nur nach dem Anfangsdatum, aber dieses Objekt hat tatsächlich ein Feld end_date
. Also im Moment habe ich alle Ereignisse, die in dieser Minute begonnen haben, aber ich muss die Anzahl der Ereignisse ermitteln, die in dieser Minute laufen.
Die Daten, die ich habe, enthalten:
%Vor% Momentan verwendet es nicht das end_date
-Feld, so dass die Ausgabe
Ich muss alle laufenden Ereignisse haben, etwa
%Vor%Erstens könntest du alle Stunden & amp; Minuten an einem Tag mit einigen einfachen LINQ:
%Vor%Live-Beispiel: Ссылка
Sie können dann diese Sammlung verwenden, um zu den ursprünglichen Ergebnissen beizutreten, um die endgültige Ausgabe zu erstellen:
%Vor%Ausgabe
00:00 = 0
00:01 = 6
00:02 = 0
00:03 = 1
00:04 = 0
//..snip..//
23:55 = 0
23:56 = 0
23:57 = 0
23:58 = 0
23:59 = 0
Live-Beispiel Ссылка
BEARBEITEN
Wenn Sie Ihre Anforderung ändern, einen Bereich von Daten zu berücksichtigen, können Sie eine neue Klasse und Methode hinzufügen, um die Stunde & amp; Minute von jedem Gegenstand:
%Vor%Dies kann dann in der ursprünglichen Methode wie folgt verwendet werden:
%Vor%Ausgabe
00:00 = 0
00:01 = 6
00:02 = 6
00:03 = 7
00:04 = 7
00:05 = 7
00:06 = 0
00:07 = 0
// .. snip ..//
Live-Beispiel: Ссылка
Es scheint, dass Sie GroupJoin()
nicht nur GroupBy()
wollen, etwas ähnliches: