2011-02-17 162 views
9

是否可以将字符串表达式转换为布尔条件?c#将字符串表达式转换为布尔表达式

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

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

我想出来的这个创建bool表达和调用它。字符串表示也是灵活的(使其更有趣),所以它允许||, &&,()

+0

另请参阅[如何,可以-I-评估-AC-尖锐的表达,动态LQ = 1?(HTTP:// stackoverflow.com/questions/53844/how-can-i-evaluate-ac-sharp-expression-dynamically?lq=1) – nawfal 2013-12-19 18:47:43

回答

4

我会使用.NET语言工具箱Irony。你可以用Irony构造一个简单的语法,然后将该字符串解析成可执行的命令。还有在这个tutorial,并在Expression Grammar Sample,它的一个很常见的请求的arthmetic语法的一个体面的例子)

我绝对建议使用合适的编译器,而不是正则表达式或滚你自己的方法 - 它会更如果您想要添加更多规则,则可扩展。

4

有CodePlex上看看Flee(快速轻巧表达式求值)。