我正在用 C# 编写一个程序,该程序从用户输入中获取一个方程并对其进行评估。目前,我有一种方法可以计算用户输入并从存储的变量(例如 x)中获取值。将输入的方程式将类似于2.0 * 78 * 4X / 3
。
目前我可以用X
与之关联的值替换。但是我需要一种搜索字符串并找到的方法X
,然后如果X
在它之前有一个数字,则乘以X * X
该次数。在上面的示例中,这将是 4 次。
最好使用该IndexOf
方法还是将字符串拆分为子字符串?
我想要的只是能够找到X
前面有一个数字的天气;如果不是,则只输出 的值X
,否则如果在乘以所述倍X
之前有一个数字。X*X
这是我用于查找X
传递的数据的代码。理想情况下,我想包含以下任何代码:
if (name == "x" || name == "X")
{
args.Result = x; // Returns value of x
}
这是所有其余的代码
var e = new Expression(input);
// 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 == "x" || name == "X")
{
args.Result = x; // Returns value of x
}
else if (name == "y" || name == "Y")
{
//....
}
else if (name == "z" || name == "Z")
{
//....
}
// Or if the names match up you might be able to something like:
// args.Result = dataRow[name];
};
//var result =
return e.Evaluate();