Sto cercando un modo per negare un'espressione usata per filtrare le sequenze IQueryable
.C# nega un'espressione
Così, ho qualcosa di simile:
Expression<Func<T, bool>> expression = (x => true);
Ora desidero creare l'espressione che si tradurrebbe nel cedere (x => false)
- così ho praticamente voglio negare l'expression
.
Il metodo di lavoro che ho trovato me stesso funziona così:
var negatedExpression =
Expression.Lambda<Func<T, bool>> (Expression.Not(expression.Body),
expression.Parameters[0])));
Ma io sono quasi sicuro che c'è un modo migliore - mi può aiutare? (qualcosa come Not(expression)
, probabilmente).
Beh, so come avvolgere il mio modo di negare un'istruzione in un metodo 'Not', ma in realtà stavo cercando un modo semplice per eseguire effettivamente la negazione * (mi sembra che chiama 'Expression.Lambda. Blablabla' è un enorme overkill. * –
Gli alberi di espressione sono immutabili, quindi devi creare un nuovo lambda. –