2011-10-16 102 views
6

如何在LINQ查詢中將布爾值與true和false進行比較?LINQ查詢其中布爾值是true或false

如果hideCompleted是真的,我想顯示值,其中IsCompleted是假 如果hideCompleted是假的,我要顯示值,其中IsCompleted是真的還是假

例子:

(t1.IsCompleted ?? false == (hideCompleted == true ? false : (true || false))) 

回答

6

只是爲了請確保我正確理解你,如果hideCompleted爲false,你不在乎IsCompleted的價值是什麼?如果是這樣的......

!(hideCompleted && t1.IsCompleted) 
+0

雖然是答案是直觀和邏輯上是正確的,我用這個與LINQ到實體時遇到的問題。 Max Zerbini的回答爲我工作。 – Jeff

4

構建基於查詢的hideCompleted是真實,類似這樣的方法:

var query = dc.SomeTable; 
if (hideCompleted) 
{ 
    query = query.Where(t1 => !t1.IsCompleted); 
} 

這樣當hideCompleted是真的,你篩選t1.IsCompleted是假的。當hideCompleted爲false時,原始查詢將獲取所有結果,而不管t1.IsCompleted的值如何。

3

你可以使用這個條件

where (hideCompleted==true && t1.IsCompleted==false) || (hideCompleted==false) 
相關問題