2011-10-16 7 views
6

LINQクエリでブール値を真と偽の両方と比較するにはどうすればよいですか?boolean値がtrueまたはfalseのLINQクエリ

hideCompletedがtrueの場合、私は完了するが 偽の値を表示したいhideCompletedがfalseの場合、私は完了するには

真または偽の例である値を示したい:ちょうどに

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

答えて

6

をhideCompletedがfalseの場合、IsCompletedの値が何であるか気にしません。

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

hideCompletedあなたはt1.IsCompletedが偽であるためにフィルタリング真である。この方法:その場合は...

!(hideCompleted && t1.IsCompleted) 
+0

一方では、答えは、この条件を使用することができますエンティティにLINQでこれを使用しているとき、私は問題に遭遇し、直感的かつ論理的に正しいです。マックス・ゼルビニの答えが私のために働いた。 – Jeff

4

hideCompletedが、このアプローチに似て、真であることに基づいてクエリを作成します。 hideCompletedがfalseの場合、元のクエリはt1.IsCompletedの値に関係なくすべての結果を取得します。

3

あなたは

where (hideCompleted==true && t1.IsCompleted==false) || (hideCompleted==false) 
関連する問題