Contains我可以使用此代码生成运算符的Lambda表达式.
表达
Company => Company.Name.Contains("test1")
Run Code Online (Sandbox Code Playgroud)
源代码
var method = typeof(string).GetMethod("Contains", new[] { typeof(string) });
var startsWithDishExpr = Expression.Call(argLeft, method, argRight);
Run Code Online (Sandbox Code Playgroud)
它对Contains操作员来说很好.如何修改代码以便为NotContains运营商工作.
源代码
var method = typeof(string).GetMethod("NotContains", new[] { typeof(string) });
var startsWithDishExpr = Expression.Call(argLeft, method, argRight);
Run Code Online (Sandbox Code Playgroud)
NotContains操作员不工作.有人有建议吗?
Cod*_*aos 18
没有string.NotContains方法,因此创建对调用方法的调用NotContains不起作用.
一个简单的解决方案是将not运算符与Contains方法结合起来.就像通常你会写,!x.Contains(y)而不是x.NotContains(y).
要创建这样的表达式,您可以使用Expression.Not(callExpression).