Похоже, этот вопрос задает примерно то же самое.
Для этого есть два решения:
Решение 1 - просто используйте Бегство .
Копирование-вставка из документации :
ExpressionContext context = new ExpressionContext();
VariableCollection variables = context.Variables;
variables.Add("a", 100);
variables.Add("b", 1);
variables.Add("c", 24);
IGenericExpression<bool> e = context.CompileGeneric<bool>("(a = 100 OR b > 0) AND c <> 2");
bool result = e.Evaluate();
Таким образом, вы можете сделать то же самое, просто изменив типы ввода / вывода и поместивВаша строка ввода в CompileGeneric
Решение 2 - проанализировать строку ввода вручную.
Таким образом, вопрос можно разделить на две части:
Для первого элемента - пожалуйста, отметьте обратная польская запись .Это позволяет построить стек вычислений.
Далее вы сможете вычислить дерево выражений.Каждый операнд (после обрезки) будет иметь переменную или целочисленную константу.Так что просто замените переменную на фактическое значение и просто разберите строку на целое число.