2010-11-03 15 views
1

Cela doit avoir une réponse simple - je un morceau de code qui ressemble à ceci ...expression Lambda - applique logique non à un appel de méthode booléenne

condition = Expression.Call(memberAccess, 
         typeof(string).GetMethod("Contains"), 
         Expression.Constant(value)); 
        lambda = Expression.Lambda(condition, parameter); 

il fonctionne très bien ... MAIS Je veux aussi un NotContains. Est-ce que je vais devoir écrire une méthode d'extension ou y a-t-il un moyen de faire simplement un! [Lambda]?

Répondre

8

Surround avec Expression.Not:

condition = Expression.Not(Expression.Call(memberAccess, 
        typeof(string).GetMethod("Contains"), 
        Expression.Constant(value))); 
lambda = Expression.Lambda(condition, parameter); 
+0

HA! Eh oui, c'était aussi simple que ça. – jeriley