所以,我对C#很新,我试图评估字符串中的if语句。 这是一个例子:
string toEval = "5 > 4";
如果5大于4,我希望它返回true。
答案 0 :(得分:0)
只需删除引号。你可能需要包含一个.ToString(),如果你想要它以字符串形式string toEval = (5 > 4).ToString()
,但是如果你想要的值那么你可能想要bool toEval = 5 > 4;
答案 1 :(得分:0)
运算符>
是一个预定义的算术运算符,用于比较不能将其应用于字符串值的两个数值。要完成您的要求,您可以实现如下方案:
让a
和b
是整数类型的两个字符串变量,分别用5
和4
初始化。 toEval
是输出变量。
int a = 5, b = 4;
string toEval = "";
if (a > b)
toEval = "A is bigger than B";
else
toEval = "B is bigger than A";
答案 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.中提到的其他库中所述。