Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从字符串计算关系运算符_C#_Relational Operators - Fatal编程技术网

C# 从字符串计算关系运算符

C# 从字符串计算关系运算符,c#,relational-operators,C#,Relational Operators,我将关系表达式存储在数据库中,在iOS应用程序中作为字符串存储。我想计算C#中字符串内的条件,类似于以下psudo代码中的逻辑: string str1= "x > 0"; string str2= "y < 1"; int x = 1; int y=0; if(str1 && str2) { //do stuff } string str1=“x>0”; 字符串str2=“y

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

string str1= "x > 0";
string str2= "y < 1";

int x = 1;
int y=0;

if(str1 && str2)
{
        //do stuff
}
string str1=“x>0”;
字符串str2=“y<1”;
int x=1;
int y=0;
如果(str1和str2)
{
//做事
}

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


一种更简单的方法是使用库,如:

使用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
    }

请阅读更多可用于解决此类问题的其他库。

如果您进行解释,将非常有帮助。我同意,如果它们是简单的数字比较,并且与数据库中的实体相关,您可以轻松地在表中执行此操作,使用min max和
enum
选择要比较的变量,依此类推。这可能是快速的,服务器端的,并且像LINQ/EF表达式一样简单谢谢。这正是我所需要的我很抱歉,我没有检查这一点,也没有看到你的评论。我刚才把你标记为已接受的答案
bool Eval(string st)
{
    ExpressionEval eval = new ExpressionEval(st);
    return Convert.ToBoolean(eval.Evaluate().ToString());
}