2011-10-16 25 views
6

Bir LINQ sorgusunda bir boole değerini hem doğru hem de yanlış olarak nasıl karşılaştırabilirim?Boole değeri true veya false olan LINQ sorgusu

hideCompleted doğruysa, ben IsCompleted hideCompleted false ise IsCompleted doğru veya

Örnek yanlış, nerede olduğunu değerlerini göstermek istiyorum yanlış olduğu değerleri göstermek istiyoruz:

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

cevap

6

Sadece için doğru şekilde anladığınızdan emin olun, hideCompleted false ise, IsCompleted değerinin ne olduğu umrumda değil mi? Eğer öyleyse ...

!(hideCompleted && t1.IsCompleted) 
+0

iken cevap sezgisel ve mantıksal doğru olan bu durumun kullanabilirsiniz. Max Zerbini'nin cevabı benim için çalıştı. – Jeff

4

sorgu Bu yaklaşıma benzer, gerçek olma hideCompleted dayalı kurmak: hideCompleted doğru olduğunda size t1.IsCompleted yanlış olduğu için filtre

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

Bu şekilde. hideCompleted yanlış olduğunda, orijinal sorgunuz t1.IsCompleted'un değerinden bağımsız olarak tüm sonuçları alır.

3

Eğer varlıklara linq ile bu kullanırken sorunlar karşılaştı,

where (hideCompleted==true && t1.IsCompleted==false) || (hideCompleted==false) 
İlgili konular