我使用C#.NETLINQ WHERE使用if語句
我有兩個文本框,如果它!空需要一個LINQ查詢中的WHERE子句的一部分條款。
這裏是我的代碼
var result = from a in xxxx select a;
if(!string.IsNullOrEmpty(personName))
{
return result.Where(a >= a.forename.Contains(personName) || a.surname.Contains(personName)
}
else if(!string.IsNullOrEmpty(dateFrom))
{
return result.Where(a >= a.appStartDateTime >= dateFrom.Date)
}
else if(!string.IsNullOrEmpty(personName) && !string.IsNullOrEmpty(dateFrom))
{
return result.Where(a >= a.forename.Contains(personName) || a.surname.Contains(personName) && a.appStartDateTime >= dateFrom.Date);
}
我認爲這會工作,但它不喜歡的。哪裏,我不能訪問「A」例如a.forename(名稱「一個」不在當前的情況下存在)
我該怎麼做,或者實際上不能做到這一點?
在此先感謝您的幫助。
克萊爾
如果你將永遠不會碰到最後的其他人。如果最後一個如果將是真的,那麼第一個如果是真的。所以你不能到最後一個。 – 2009-09-30 12:40:28
我現在把它們變成了所有if語句。 – ClareBear 2009-09-30 13:43:25
@ClareBear如果他們仍然有返回語句在他們那麼它不會幫助。你將永遠不會碰到檢查兩個條件的最後一條if語句。你仍然只會從第一個返回。我也會重新排序它們,以便personName && dateFrom的檢查不爲空或空的檢查首先發生。 – 2009-09-30 13:49:25