如何使用Datatable的Compute方法在运行时评估布尔表达式?

pri*_*kar 2 c# datatable

如果我做

DataTable dt = new DataTable();
 var v = dt.Compute("3 * (2+4)", "");
Run Code Online (Sandbox Code Playgroud)

它工作正常。

但是如果我这样做

 var v1 = dt.Compute("true && true && false || false || false || true", "");
Run Code Online (Sandbox Code Playgroud)

在运行时出错

语法错误:“&”运算符前缺少操作数。

我想念的是什么?

Tim*_*ter 8

您必须使用ANDOR

bool b = (bool)dt.Compute("true AND true AND false OR false OR false OR true", "");
Run Code Online (Sandbox Code Playgroud)

级联使用布尔允许ANDORNOT运营商。您可以使用括号对子句进行分组并强制优先级。该AND 运算符的优先级高于其他运算符。

您可以在此处找到支持的运算符的列表。