比较没有时间 lambda 的日期

本文关键字:日期 lambda 没有时间 比较 | 更新日期: 2023-09-27 18:35:19

我认为这段代码会中断,因为SubmittedDt和DateTimeToday中有时间。我如何解决此问题以仅按日期而不是时间进行过滤。

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

比较没有时间 lambda 的日期

x.SubmittedDt

应该是

x.SubmittedDt.Date

。虽然你并不真正需要Where因为First(或FirstOrDefault)应该处理你想要的东西。

dailyOrders.First(x => x.SubmittedDt.Date == DateTime.Today && x.IsResetDone == false);

试试这个

DailyOrder todaysOrderNotReset = dailyOrders.Where(x => x.SubmittedDt.Date == DateTime.Today && x.IsResetDone == false).First();
DateTime today = DateTime.Today;
DailyOrder todaysOrderNotReset = dailyOrders.First(x => 
    x.SubmittedDt.Date == today && x.IsResetDone == false);
将当前日期/时间

与项目集合进行比较时,最好首先将当前日期/时间读入局部变量,然后使用该一致的值进行比较。否则,您将面临一个很小的风险,即当前日期/时间在执行过程中会发生变化并产生意外结果。