我想这个代码中断了,因为在SubmittedDt和DateTimeToday中有时间。我如何解决这个问题只是过滤日期而不是时间。
DailyOrder todaysOrderNotReset = dailyOrders.Where(x => x.SubmittedDt == DateTime.Today && x.IsResetDone == false).First();
答案 0 :(得分:8)
x.SubmittedDt
应该是
x.SubmittedDt.Date
...虽然你真的不需要Where
因为First(或FirstOrDefault)应该处理你想要的东西。
dailyOrders.First(x => x.SubmittedDt.Date == DateTime.Today && x.IsResetDone == false);
答案 1 :(得分:2)
试试这个
DailyOrder todaysOrderNotReset = dailyOrders.Where(x => x.SubmittedDt.Date == DateTime.Today && x.IsResetDone == false).First();
答案 2 :(得分:0)
DateTime today = DateTime.Today;
DailyOrder todaysOrderNotReset = dailyOrders.First(x =>
x.SubmittedDt.Date == today && x.IsResetDone == false);
将当前日期/时间与项目集合进行比较时,最好首先将当前日期/时间读入局部变量,然后使用该一致值进行比较。否则,您将面临一个小风险,即当前日期/时间会在执行期间发生变化并产生意外结果。