Asp.net 为连接值的比较操作构建表达式树,例如>;=1“;

Asp.net 为连接值的比较操作构建表达式树,例如>;=1“;,asp.net,linq,expression-trees,Asp.net,Linq,Expression Trees,下面是一个很好的例子,说明了当操作符和值作为单独的参数传递到方法中时,如何创建表达式树 在我的示例中,我有几个下拉框,其中运算符和值是组合在一起的,例如“>=1”、“小于3”等。我可能会将其拆分为运算符和值,并将两者传递到上面的示例中,但我想知道是否有更简单的方法来编写表达式,其中我可以将运算符和值用作一个参数,用替代方法替换MakeBinary方法 我对表达式树比较陌生,所以一些指导可能会有所帮助。谢谢。没有。表达式树的级别很低,不处理字符串->代码。它们不是eval,而是运行时的构建代码(

下面是一个很好的例子,说明了当操作符和值作为单独的参数传递到方法中时,如何创建表达式树

在我的示例中,我有几个下拉框,其中运算符和值是组合在一起的,例如“>=1”、“小于3”等。我可能会将其拆分为运算符和值,并将两者传递到上面的示例中,但我想知道是否有更简单的方法来编写表达式,其中我可以将运算符和值用作一个参数,用替代方法替换MakeBinary方法


我对表达式树比较陌生,所以一些指导可能会有所帮助。谢谢。

没有。表达式树的级别很低,不处理字符串->代码。它们不是eval,而是运行时的构建代码(从技术上讲,它们是运行时代码的构建描述符,如果您真的需要,可以编译它)

如果运算符和值的格式为
,则使用正则表达式拆分它们
var rx = new Regex("([<>]=?|==)(.*)");

string str = "<=1234";

var match = rx.Match(str);
string op = match.Groups[1].Value;
string val = match.Groups[2].Value;