Lambda表达式NotContains运算符是否存在?

siv*_*vaL 8 c# lambda

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).