表达式树 - 不包含
Expression tree - not contains
我需要创建一个表达式来搜索一个不包含另一个的字符串。我能够为包含方法创建它:
return Expression.Call(firstOrDefaultCall, typeof(string).GetMethod("Contains"), Expression.Constant(text));
如何转换为'not contains'?
你一般会怎么写?
var stringValue = "foo"
var result = !stringValue.Contains("o");
注意 Contains()
之前的逻辑否定运算符 !
。那是您唯一缺少的部分。要在构建表达式时取反布尔值,请使用 Expression.Not()
:
return Expression.Not(
Expression.Call(
firstOrDefaultCall,
typeof(string).GetMethod("Contains"),
Expression.Constant(text)));
并且不要陷入使用 Expression.Negate()
的陷阱。那个是算术取反运算,算术取反的例子:
var negatedPi = Math.PI * -1;
我需要创建一个表达式来搜索一个不包含另一个的字符串。我能够为包含方法创建它:
return Expression.Call(firstOrDefaultCall, typeof(string).GetMethod("Contains"), Expression.Constant(text));
如何转换为'not contains'?
你一般会怎么写?
var stringValue = "foo"
var result = !stringValue.Contains("o");
注意 Contains()
之前的逻辑否定运算符 !
。那是您唯一缺少的部分。要在构建表达式时取反布尔值,请使用 Expression.Not()
:
return Expression.Not(
Expression.Call(
firstOrDefaultCall,
typeof(string).GetMethod("Contains"),
Expression.Constant(text)));
并且不要陷入使用 Expression.Negate()
的陷阱。那个是算术取反运算,算术取反的例子:
var negatedPi = Math.PI * -1;