否定表达式树中的方法调用

时间:2009-12-01 16:22:41

标签: c# linq expression-trees

我正在动态生成一个c#Linq表达式,如下所示(在下面的示例中)将运行string.Contains对集合值。

var dynamicMethod = "Contains";
var parameter = Expression.Parameter(typeof (MyClass), "type");
var property = Expression.Property(parameter, "MyProperty");
var constantValue = Expression.Constant("PropertyValue", property.Type);
var method = property.Type.GetMethod(dynamicMethod, new[] {property.Type});
var expression = Expression.Call(property, method, constantValue);

对于上面的代码,我想要的东西等同于!Contains。

有什么建议吗?

感谢。

1 个答案:

答案 0 :(得分:9)

Expression.Not怎么样?那只是:

var condition = Expression.Not (contains_call);