わかりました、これはちょっと厄介なクエリであり、私はそれで限られた成功しか収めていません。日時プロパティとその他のデータを持つFooクラスのリストがあります。私はほとんど毎分クラス/列を持っていますが、休日や週末のように欠席している日もあれば、丸一日欠席している日もあります。私の目標は、開始時刻から終了時刻までのすべての行について毎日グループ化することです。
ですから、ある日、私の開始時間は午前9時30分、終了時間は午後3時になるかもしれません。私が次のように処理するこの状況:
DateTime sd = new DateTime(2000, 1, 1, 9, 30, 0);
DateTime ed = new DateTime(2000, 1, 1, 15, 0, 0);
var z = Foos.Where(a=> a.FooDate.TimeOfDay >= sd.TimeOfDay &&
a.FooDate.TimeOfDay < ed.TimeOfDay)
.GroupBy(a=>a.FooDate.Date);
これは正常に機能します。私の問題は、開始時刻が午後9時、終了時刻が午前6時である場合があります。その場合、私はfooのグループを一晩中行きたいと思っています。そして、午後9時が金曜日で、次の月曜日まで列がない場合は、グループを週末にまたがらせたいと思います。いつも翌日に行くようなクエリの提案にも満足しています。
私はそれが明確であり、どんなアイデアにも感謝することを願っています。私はループを使ってこれを行う他の多くの方法を試し、異なる日付などの別のリストを作成しましたが、それに満足していません。