比较没有时间Lambda的日期

时间:2012-05-23 19:40:12

标签: c# linq

我想这个代码中断了,因为在SubmittedDt和DateTimeToday中有时间。我如何解决这个问题只是过滤日期而不是时间。

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

3 个答案:

答案 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);

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