Ncalc如何评估多值字符串参数

时间:2016-05-13 06:21:01

标签: vb.net ncalc

我正在使用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的值。

我可以通过自定义功能执行此操作吗?如果是这样的话?还有其他想法吗?

谢谢

1 个答案:

答案 0 :(得分: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;
            }
        }