質問を正しく表現する方法がわかりませんが、私は持っています:
var groups = data.GroupBy(x => new {x.EntityId, x.StartLocal = new {
var stamp = x.StartLocal;
stamp = stamp.AddHours(-(stamp.Hour % hours));
stamp = stamp.AddMinutes(-stamp.Minute);
stamp = stamp.AddMilliseconds(-stamp.Millisecond);
return stamp;
}})
.Select(...)
.ToList();
これは機能しません (構文が正しくありません)。最初に、entityId
次に というフィールドの時間でグループ化StartLocal
したいと思います。結果を 2 時間ごとにグループ化すると、次のようになります。
Id = 1
Hour = 2
Hour = 4
Id = 2
Hour = 2
...
そのようです。
記入する必要があるもの:
DO obj = new DO
{
EntityId = pp.EntityId,
EntityCode = pp.EntityCode,
StartLocal = pp.StartLocal,
Volume = pp.Volume,
};
これVolume
は、集約する必要があるものです。したがって、基本的にこれらの DO の 1000 は配列として提供され、EntityId によって分割され、次に StartLocal の時間によって分割されます...ボリュームは x 時間分の価値で集計され、同じ DO が作成されます...しかし、今では多くのそれらの少ない。