构建用于比较操作的表达式树,并连接值,例如 ">= 1"

Building an Expression tree for Comparison Operations with value concatenated e.g ">= 1"

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

Get list on basis of dropdownlist data in asp.net mvc3

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

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

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

如果运算符和值的格式为 "<something".

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

string str = "<=1234";

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