1

質問を正しく表現する方法がわかりませんが、私は持っています:

            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 が作成されます...しかし、今では多くのそれらの少ない。

4

3 に答える 3