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(快速輕巧表達式求值)。