C# - 评估字符串中的if语句

时间:2016-03-24 00:59:30

标签: c#

所以,我对C#很新,我试图评估字符串中的if语句。 这是一个例子:

string toEval = "5 > 4";

如果5大于4,我希望它返回true。

4 个答案:

答案 0 :(得分:0)

只需删除引号。你可能需要包含一个.ToString(),如果你想要它以字符串形式string toEval = (5 > 4).ToString(),但是如果你想要的值那么你可能想要bool toEval = 5 > 4;

答案 1 :(得分:0)

运算符>是一个预定义的算术运算符,用于比较不能将其应用于字符串值的两个数值。要完成您的要求,您可以实现如下方案:

ab是整数类型的两个字符串变量,分别用54初始化。 toEval是输出变量。

 int a = 5, b = 4;
 string toEval = "";
 if (a > b)
    toEval = "A is bigger than B";
 else
    toEval = "B is bigger than A";

Working Example

答案 2 :(得分:0)

.NET中有一个Expression类,这非常令人兴奋,但遗憾的是,没有内置的Expression解析器。

但你仍然可以用这种方式评估简单的数学表达式:

 var evaluator = new DataTable();
 string toEval = "5 > 4";
 bool result = (bool)evaluator.Compute(toEval, string.Empty);

答案 3 :(得分:0)

要完全执行此操作,您可以使用System {.Linq.Dynamic库,如this question.中提到的其他库中所述。