在 C# 中使用 DataTable 计算异或表达式

calculate xor expression using DataTable in C#

我想计算像(true xor false)这样的逻辑表达式我使用了DataTable,但它不支持xor。如何计算 xor 个表达式?

System.Data.DataTable table = new System.Data.DataTable();
var result = table.Compute("( False xor True) ", "");

您正在尝试解析包含 C# 逻辑表达式的字符串。有多种实现方式:

  1. 由于您的逻辑表达式仅使用 truefalseorxor,加上括号,您可以推出自己的解析器。应该是一个相当苗条的功能。

  2. 如果你在 DataTable 的上下文中使用它,从问题标签可以看出,有一个名为 Compute 的内置函数可以简单地表达式并为您评估它们。默认情况下,XOR 在支持的运算符列表中不可用,但您可以使用 不等于 运算符 (<>) 编写等效表达式。 Remmber A ^ B 在 DataTable 的布尔表达式的上下文中等同于 (A <> B)

  3. 您可以使用 Roslyn 的内置功能并在运行时逐字解析和计算任何 C# 表达式。