我正在尝试将一个元素数组与一个值进行比较,有没有使用ncalc的方法?
示例:
new Expression(ruleExpression.Replace(" [1,2,3] > 1 and 2 < 3 and 2 == 2").Evaluate(); 我想要的结果是FALSE to (1,2,3 >1 ),因为并不是所有的元素都遵守规则。
发布于 2019-02-26 04:27:48
这是一个稍晚的答案,但我认为它仍然值得回答,以防其他人遇到同样的问题。
如果您不反对从NCalc迁移,那么我已经创建了一个替代表达式评估框架,该框架最初是为了匹配NCalcs行为而构建的。它被称为Expressive,可以在GitHub或NuGet上使用。
虽然您还不能在表达式中直接编写数组,但可以将它们作为变量提供。因此,为了稍微调整您的表达式,您可以提供以下内容,并获得预期的结果:
new Expression("[array] > 1 and 2 < 3 and 2 == 2").Evaluate(new Dictionary<string, object>()
{
["array"] = new int[] {1,2,3}
});https://stackoverflow.com/questions/46605177
复制相似问题