从字符串中计算关系运算符



我在数据库中存储了关系表达式,在iOS应用程序中作为字符串存储。我想评估C#中字符串中的条件,类似于以下psudo代码中的逻辑:

string str1= "x > 0";
string str2= "y < 1";
int x = 1;
int y=0;
if(str1 && str2)
{
//do stuff
}

如果表达式像示例中的表达式一样简单,那么您可以简单地解析它们。但如果你有更复杂的表达式,那么我建议你看看C#表达式树。文档很好地解释了这一点。

一个更简单的方法是使用类似库的方法:https://github.com/davideicardi/DynamicExpresso

使用Afk表达式库(Afk链接(并尝试下面的代码,它将解决您的问题,正如我所整理的。

必需的命名空间

using Afk.Expression;

将表达式作为字符串发送到库计算器的代码

string str1 = "x > 0";
string str2 = "y < 1";
int x = 10;
int y = 0;
var st1=str1.Replace("x",x.ToString());
var st2 = str2.Replace("y", y.ToString());
if (Eval(st2) && Eval(st1))
{
//checked
}

Eval方法评估数学和条件表达式

bool Eval(string st)
{
ExpressionEval eval = new ExpressionEval(st);
return Convert.ToBoolean(eval.Evaluate().ToString());
}

我们也可以阅读更多其他库,您可以利用这些库来解决此类问题。

相关内容

  • 没有找到相关文章

最新更新