2

SubmittedDt と DateTimeToday に時間があるため、このコードは壊れていると思います。これを修正して、時間ではなく日付だけでフィルタリングするにはどうすればよいですか。

  DailyOrder todaysOrderNotReset = dailyOrders.Where(x => x.SubmittedDt == DateTime.Today && x.IsResetDone == false).First();
4

3 に答える 3

8
x.SubmittedDt

する必要があります

x.SubmittedDt.Date

... WhereFirst (または FirstOrDefault) は必要なものを処理する必要があるため、実際には必要ありません。

dailyOrders.First(x => x.SubmittedDt.Date == DateTime.Today && x.IsResetDone == false);
于 2012-05-23T19:42:02.097 に答える
2

これを試して

DailyOrder todaysOrderNotReset = dailyOrders.Where(x => x.SubmittedDt.Date == DateTime.Today && x.IsResetDone == false).First();
于 2012-05-23T19:42:53.197 に答える
0
DateTime today = DateTime.Today;
DailyOrder todaysOrderNotReset = dailyOrders.First(x => 
    x.SubmittedDt.Date == today && x.IsResetDone == false);

現在の日付/時刻をアイテムのコレクションと比較する場合、まず現在の日付/時刻をローカル変数に読み込んでから、その一貫した値を比較に使用することをお勧めします。そうしないと、実行中に現在の日付/時刻が変更され、予期しない結果が生じるという小さなリスクがあります。

于 2012-05-23T19:50:32.527 に答える