gpt4 book ai didi

c# - 字符串转换为三元运算符

转载 作者:太空宇宙 更新时间:2023-11-03 21:14:04 24 4
gpt4 key购买 nike

string str= "6 < 5 ? 1002 * 2.5: 6 < 10 ? 1002 * 3.5: 1002 * 4";
double Amount = str;

我想要输出:3507

最佳答案

这应该可以解决:

static void Main(string[] args)
{
string str = "6 < 5 ? 1002 * 2.5: 6 < 10 ? 1002 * 3.5: 1002 * 4";

Console.WriteLine(EvaluateExpression(str));
Console.ReadKey();
}

public static object EvaluateExpression(string expression)
{
var csc = new CSharpCodeProvider();
var parameters = new CompilerParameters(new[] { "mscorlib.dll", "System.Core.dll" });
parameters.GenerateExecutable = false;
CompilerResults results = csc.CompileAssemblyFromSource(new CompilerParameters(new[] { "System.Core.dll" }),
@"using System;

class Program
{
public static object GetExpressionValue()
{
return " + expression + @";
}
}");

if (results.Errors.Count == 0)
{
return results.CompiledAssembly.GetType("Program").GetMethod("GetExpressionValue").Invoke(null, null);
}
else
{
return string.Format("Error while evaluating expression: {0}", string.Join(Environment.NewLine, results.Errors.OfType<CompilerError>()));
}
}

虽然我会建议一些不那么“脆弱”的东西,但我确信有一些库可以帮助你。

答案基于this .

关于c# - 字符串转换为三元运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35681289/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com