我认为这段代码会中断,因为 SubmittedDt 和 DateTimeToday 中有时间。如何解决此问题以仅按日期而不是时间进行过滤。
DailyOrder todaysOrderNotReset = dailyOrders.Where(x => x.SubmittedDt == DateTime.Today && x.IsResetDone == false).First();
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);
在将当前日期/时间与项目集合进行比较时,您最好首先将当前日期/时间读入本地变量,然后使用该一致值进行比较。否则,您会冒很小的风险,即当前日期/时间会在执行过程中发生变化并产生意想不到的结果。