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

...虽然你并不真正需要Where因为 First(或 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 回答