C#转换字符串表达式为布尔表达式[关闭]C#转换字符串表达式为布尔表达式[关闭](c# conver

2019-05-12 03:20发布

是否有可能将字符串表达式转换成布尔条件?

例如,我得到以下字符串:

var b = "32 < 45 && 32 > 20"

我想创建一个bool出来的这种表达和调用它。 字符串表示也很灵活(使它更好玩),因此它允许||, &&, ()

Answer 1:

我会用反讽的.NET语言包。 你可以构造一个简单的语法与反讽,然后解析字符串转换为可执行的命令。 有一个在这一个arthmetic语法体面的例子教程 ,并在表达式语法样品 ,它的一个很常见的请求;)

我用正确的编译器,而不是正则表达式或滚你自己的方法肯定建议 - 这将是更加可扩展的,如果你想添加更多的规则。



Answer 2:

看看回避率 CodePlex上(快速轻巧表达式求值)。



Answer 3:

如果它遵循所有的C#表达式规则然后编译为动态代码按http://www.west-wind.com/presentations/dynamiccode/dynamiccode.htm



Answer 4:

如果你正在处理相对简单的数学表达式,然后直接实现的的调度场算法应该做的伎俩。



Answer 5:

我觉得这个字符串创建一个翻译不会采取太长时间。

http://www.industriallogic.com/xp/refactoring/implicitLanguageWithInterpreter.html

在这里你可以找到有关的设计,可用于创建它的信息。



Answer 6:

你可以看看JINT(JavaScript解释为.NET) http://jint.codeplex.com/



Answer 7:

看看我的图书馆, 辎 。 这是使用一个.NET标准库调度场算法来评估布尔表达式。 你也可以实现自己的语法。



文章来源: c# convert string expression to a boolean expression [closed]