0

Ncalc を使用して、いくつかの文字列値の存在を評価しています

if (@Xval = 'Z','T','F')

これは、@xval がパラメーターとして単一の値 (@Xval = 'Z') として入力された場合にうまく機能します。それは真の評価を返します。@Xvalが「Z」、「H」、つまりXvalにこれらの2つの値が含まれている場合、同じ式を評価しようとしています。「Z」がそれらの中にあるかどうかを見つけようとしています。

同じことがif (in (@Xval,'Z','H','M'),'T','F')、オプションのグループ (Z、H、M) で Xval の値を探している場合にも当てはまります。

カスタム関数でこれを行うことはできますか? もしそうなら、どのように?他のアイデアはありますか?

ありがとうございました

4

1 に答える 1

0

あなたが試すことができます

   Expression e = new Expression("if (iscontians("ZHM",@Xval),'T','F')", EvaluateOptions.IgnoreCase);
   e.EvaluateFunction += evalFunction;

カスタム関数を書く

private void evalFunction(string name, FunctionArgs args)
        {
            switch (name.ToUpper())
            {

                case "ISCONTAINS":
                    if (args.Parameters.Length < 2)
                        throw new ArgumentException("isContains() takes at least 2 arguments");
                    args.Result = args.Parameters[0].Evaluate().ToString().Contains(args.Parameters[1].Evaluate().ToString());
                    break;
                default:
                    break;
            }
        }
于 2016-06-22T09:30:16.210 に答える