从字符串公式映射变量
本文关键字:映射 变量 字符串 | 更新日期: 2023-09-27 18:09:27
我有一个文本区,用户可以创建一个动态公式使用下拉列表(操作符,变量等),像这样:
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();
也有一些相关的问题,比如这个和这个,给了一些其他的选择
您也可以尝试在DataTable
中利用DataColumn
的Expression
属性。