c#中的逻辑评估器(评估逻辑(&&,||)表达式)

在我的项目中有一个Logic evaluation部分,它将输入作为包含logical expressionstrue/false )的字符串。

我想评估此字符串并返回最终的布尔值。

 string Logic="1&0|1&(0&1)" //string Logic="true AND false OR true AND (false AND true)" 

这将是我的Logic 。 长度可能会增加。

有没有办法从LINQ / Dynamic LINQ评估这个表达式?

没有任何第三方库的方法是使用带表达式的DataTable。

在那里你甚至可以评估其他结果值类型而不仅仅是布尔值。

 System.Data.DataTable table = new System.Data.DataTable(); table.Columns.Add("", typeof(Boolean)); table.Columns[0].Expression = "true and false or true"; System.Data.DataRow r = table.NewRow(); table.Rows.Add(r); Boolean result = (Boolean)r[0]; 

表达式语法与您的示例不同,但它执行相同的操作。 一个优点是它的100%.NET框架包含 – > Microsoft管理。 error handling也不错。 缺少运营商等的例外情况……

可用的运营商

你可以使用Zentrum 。

完全免责声明:我写了!

我们正在使用http://simproexpr.codeplex.com/