過去 5 日間の午前 7 時から午後 7 時までの 15 分ごとに値を返す sproc があります。戻り値は次のようになります。
TheDate TheValue
2013-10-06 07:15:00.000 0
2013-10-06 07:30:00.000 0
2013-10-06 07:45:00.000 0
2013-10-06 08:00:00.000 0
2013-10-06 08:15:00.000 0
2013-10-06 08:30:00.000 0
2013-10-06 08:45:00.000 0
2013-10-06 09:00:00.000 0
2013-10-06 09:15:00.000 0
2013-10-06 09:30:00.000 0
2013-10-06 09:45:00.000 0
2013-10-06 10:00:00.000 0
2013-10-06 10:15:00.000 0
2013-10-06 10:30:00.000 0
2013-10-06 10:45:00.000 0
2013-10-06 11:00:00.000 0
2013-10-06 11:15:00.000 0
2013-10-06 11:30:00.000 0
2013-10-06 11:45:00.000 0
2013-10-06 12:00:00.000 0
2013-10-06 12:15:00.000 0
2013-10-06 12:30:00.000 0
2013-10-06 12:45:00.000 0
2013-10-06 13:00:00.000 0
2013-10-06 13:15:00.000 0
2013-10-06 13:30:00.000 0
2013-10-06 13:45:00.000 0
2013-10-06 14:00:00.000 0
2013-10-06 14:15:00.000 0
2013-10-06 14:30:00.000 0
2013-10-06 14:45:00.000 0
2013-10-06 15:00:00.000 0
2013-10-06 15:15:00.000 0
2013-10-06 15:30:00.000 0
2013-10-06 15:45:00.000 0
2013-10-06 16:00:00.000 0
2013-10-06 16:15:00.000 0
2013-10-06 16:30:00.000 0
2013-10-06 16:45:00.000 0
2013-10-06 17:00:00.000 0
2013-10-06 17:15:00.000 0
2013-10-06 17:30:00.000 0
2013-10-06 17:45:00.000 0
2013-10-06 18:00:00.000 0
2013-10-06 18:15:00.000 0
2013-10-06 18:30:00.000 0
2013-10-06 18:45:00.000 0
2013-10-06 19:00:00.000 0
2013-10-07 07:15:00.000 0
2013-10-07 07:30:00.000 0
2013-10-07 07:45:00.000 0
2013-10-07 08:00:00.000 0
2013-10-07 08:15:00.000 0
2013-10-07 08:30:00.000 2
2013-10-07 08:45:00.000 11
2013-10-07 09:00:00.000 21
2013-10-07 09:15:00.000 28
2013-10-07 09:30:00.000 15
2013-10-07 09:45:00.000 11
2013-10-07 10:00:00.000 26
2013-10-07 10:15:00.000 1
2013-10-07 10:30:00.000 18
2013-10-07 10:45:00.000 31
2013-10-07 11:00:00.000 28
2013-10-07 11:15:00.000 22
2013-10-07 11:30:00.000 28
2013-10-07 11:45:00.000 32
2013-10-07 12:00:00.000 34
2013-10-07 12:15:00.000 29
2013-10-07 12:30:00.000 23
2013-10-07 12:45:00.000 0
2013-10-07 13:00:00.000 1
2013-10-07 13:15:00.000 20
2013-10-07 13:30:00.000 32
2013-10-07 13:45:00.000 30
2013-10-07 14:00:00.000 32
2013-10-07 14:15:00.000 21
2013-10-07 14:30:00.000 19
2013-10-07 14:45:00.000 23
2013-10-07 15:00:00.000 33
2013-10-07 15:15:00.000 3
2013-10-07 15:30:00.000 22
2013-10-07 15:45:00.000 42
2013-10-07 16:00:00.000 32
2013-10-07 16:15:00.000 34
2013-10-07 16:30:00.000 27
2013-10-07 16:45:00.000 18
2013-10-07 17:00:00.000 5
2013-10-07 17:15:00.000 0
2013-10-07 17:30:00.000 0
2013-10-07 17:45:00.000 1
2013-10-07 18:00:00.000 0
2013-10-07 18:15:00.000 0
2013-10-07 18:30:00.000 0
2013-10-07 18:45:00.000 0
2013-10-07 19:00:00.000 0
これは 2 日間です。実際の sproc は 5 日間の価値を返しますが、すべてその形式です。
とにかく、返されたすべての日の平均値を毎回取得する必要があります。したがって、7:15、7:30 などの平均値です。
DateTimes のリストに保存されている、午前 7 時から午後 7 時までの 15 分刻みのすべての一意の時刻のリストがあります。
List<DateTime> time = new List<DateTime>();
foreach (DateTime a in time)
Console.WriteLine(a.TimeOfDay);
sproc から返されたデータは、DataSet 内の DataTable に保存されます。私はこれに似たようなことをしたいと思っていましたが、Where句に重要なコンポーネントが欠けていることを除いて、誰かが助けてくれたらとても感謝しています!
List<int> blah = new List<int>();
foreach (DateTime a in time)
{
blah.Add(Convert.ToInt32(ds.Tables[0].AsEnumerable()
.Where(w => /* **NOTE** */)
.Average(g => Convert.ToInt32(g["TheValue"]))));
}
**注 - 日付に関係なく、時刻が 7:15 のすべての行または時刻が 7:30 のすべての行を取得するには、ここに何を配置するかを理解する必要があります。
では、5 日間すべての TIME の値を平均化するための最良の方法について何か提案はありますか?
ありがとう!:)