0

我正在使用 Ncalc 来评估某些字符串值的存在

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

当@xval 作为参数作为单个值输入时,这很有效(@Xval = 'Z')。这将返回一个真实的评估。当@Xval 可能是“Z”、“H”时,我现在正在评估相同的公式,换句话说,Xval 包含这两个值,我试图找出“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 回答