在 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# 逻辑表达式的字符串。有多种实现方式:
由于您的逻辑表达式仅使用 true、false、 和、or 和 xor,加上括号,您可以推出自己的解析器。应该是一个相当苗条的功能。
如果你在 DataTable
的上下文中使用它,从问题标签可以看出,有一个名为 Compute
的内置函数可以简单地表达式并为您评估它们。默认情况下,XOR 在支持的运算符列表中不可用,但您可以使用 不等于 运算符 (<>) 编写等效表达式。 Remmber A ^ B 在 DataTable 的布尔表达式的上下文中等同于 (A <> B)。
您可以使用 Roslyn 的内置功能并在运行时逐字解析和计算任何 C# 表达式。
我想计算像(true xor false)
这样的逻辑表达式我使用了DataTable,但它不支持xor
。如何计算 xor
个表达式?
System.Data.DataTable table = new System.Data.DataTable();
var result = table.Compute("( False xor True) ", "");
您正在尝试解析包含 C# 逻辑表达式的字符串。有多种实现方式:
由于您的逻辑表达式仅使用 true、false、 和、or 和 xor,加上括号,您可以推出自己的解析器。应该是一个相当苗条的功能。
如果你在
DataTable
的上下文中使用它,从问题标签可以看出,有一个名为Compute
的内置函数可以简单地表达式并为您评估它们。默认情况下,XOR 在支持的运算符列表中不可用,但您可以使用 不等于 运算符 (<>) 编写等效表达式。 Remmber A ^ B 在 DataTable 的布尔表达式的上下文中等同于 (A <> B)。您可以使用 Roslyn 的内置功能并在运行时逐字解析和计算任何 C# 表达式。