This question already has answers here:
operators as strings
(13个回答)
6年前关闭。
我有一个文本区域,用户可以使用下拉列表(用于运算符,变量等)创建动态公式,如下所示:
还有一些相关的问题,例如this one和this one给出了其他一些选择。
(13个回答)
6年前关闭。
我有一个文本区域,用户可以使用下拉列表(用于运算符,变量等)创建动态公式,如下所示:
basic / workingDays * attendingDays
basic
,workingDays
,attendingDays
的值保存在数据库中。我想在运行时从数据库映射这些变量。我怎样才能做到这一点。 最佳答案
NCalc是一个非常强大的框架,您可以尝试。它们使您可以定义听起来像您真正需要的动态参数。您可以执行以下操作:
var e = new Expression("basic / workingDays * attendingDays);
//Set up a custom delegate so NCalc will ask you for a parameter's value
// when it first comes across a variable
e.EvaluateParameter += delegate(string name, ParameterArgs args)
{
if (name == "basic")
args.Result = GetBasicValueFromSomeWhere();
else if (/* etc. */)
{
//....
}
//Or if the names match up you might be able to something like:
args.Result = dataRow[name];
};
var result = e.Evaluate();
还有一些相关的问题,例如this one和this one给出了其他一些选择。
关于c# - 从字符串公式映射变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7495790/