2011-10-16 24 views
6

¿Cómo puedo comparar un valor booleano con verdadero y falso en una consulta LINQ?Pregunta de LINQ donde el valor booleano es verdadero o falso

Si hideCompleted es cierto, quiero mostrar los valores en IsCompleted es falsa Si hideCompleted es falso, quiero mostrar los valores en IsCompleted es verdadera o falsa

Ejemplo:

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

Respuesta

6

Sólo para asegúrese de que lo entiendo correctamente, si hideCompleted es falso, ¿no le importa cuál es el valor de IsCompleted? Si es así ...

!(hideCompleted && t1.IsCompleted) 
+0

Si bien es respuesta es intuitivo y lógicamente correcto, me encontré con problemas al utilizar esto con LINQ a las entidades. La respuesta de Max Zerbini funcionó para mí. – Jeff

4

elaborar una consulta basada en hideCompleted ser cierto, similares a este enfoque:

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

De esta manera cuando hideCompleted es cierto filtrar por t1.IsCompleted ser falsa. Cuando hideCompleted es falso, su consulta original obtendrá todos los resultados independientemente del valor de t1.IsCompleted.

3

puede utilizar esta condición

where (hideCompleted==true && t1.IsCompleted==false) || (hideCompleted==false) 
Cuestiones relacionadas