首页 > 解决方案 > 如何评估三元字符串表达式并识别值

问题描述

值 = 14000;

三元字符串表达式为“ value > 20000 ? 200 : value > 15000 && value < 19999 ? 150 : 100

答案应该是 100

有什么方法可以评估表达式吗?

标签: c#regexexpressionconditional-operator

解决方案


您可以使用脚本 API来评估表达式。

脚本 API 使 .NET 应用程序能够启动 C# 引擎并针对主机提供的对象执行代码片段,并且需要Microsoft.CodeAnalysis.CSharp.Scripting包。

例如,

var globals = new Global();
var str = "value > 20000 ? 200 : value > 15000 && value < 19999 ? 150 : 100 ";
var result = await CSharpScript.EvaluateAsync(str,globals:globals);
Console.WriteLine(result);

其中 Global 定义为

public class Global
{
    public int @value = 14000;
}

工作演示


推荐阅读