Estoy buscando una manera de negar una expresión utilizada para filtrar las secuencias IQueryable
.C# negar una expresión
Por lo tanto, tengo algo como:
Expression<Func<T, bool>> expression = (x => true);
Ahora quiero crear la expresión de lo que resultaría en ceder (x => false)
- así que básicamente quiero negar la expression
.
El método de trabajo me he encontrado funciona así:
var negatedExpression =
Expression.Lambda<Func<T, bool>> (Expression.Not(expression.Body),
expression.Parameters[0])));
pero estoy casi seguro de que hay una manera mejor - usted me podría ayudar? (algo así como Not(expression)
, probablemente).
Bueno, sé cómo abrirme camino para negar una afirmación en un método 'No', pero en realidad estaba buscando una manera fácil de realizar realmente la negación * (me parece que llamar a 'Expression.Lambda. Blablabla' es una gran exageración). * –
Los árboles de expresión son inmutables, por lo que debes crear una nueva lambda. –