2012-05-23 109 views
2

此代碼打破我認爲,因爲有時間在SubmittedDt和DateTimeToday。我該如何解決這個問題,只是按日期而不是時間來過濾。比較日期沒有時間Lambda

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

回答

7
x.SubmittedDt 

應該

x.SubmittedDt.Date 

...雖然你並不真的需要Where因爲第一(或FirstOrDefault)應該處理你想要什麼。

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

...以及'DateTime.Today.Date'。 – BeemerGuy

+0

'DateTime.Today.Date'是不必要的,因爲'Today'已經沒有時間了。 –

+0

哦....你是對的;我剛剛嘗試過,從未給過它一個想法。 – BeemerGuy

2

試試這個

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

當比較當前日期/時間對項目的集合,你最好先閱讀當前日期/時間到一個局部變量,然後用爲您的比較提供一致的價值。否則,在執行過程中出現一個小的風險,即現在的日期/時間會發生變化,併產生意想不到的結果。