ユーザー入力から方程式を取得して評価するプログラムを 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();