如何通过在C#中作为字符串传递来计算表达式?

如何通过在C#中作为字符串传递来计算表达式?,c#,math,C#,Math,在C#中,我有一个字符串,如: string str = "SUM(1,2,3) + 123 - 45 * 3 "; // Say this is an Expression 我想用某种方法得到字符串的数值结果 与字符串类似,我可能有AVG、MIN、MAX和其他聚合函数。您可以使用。你可以在电视上找到它。版本3.6至少需要.NETCoreApp 3.1或.NETStandard 2.0 int result = await CSharpScript.EvaluateAsy

在C#中,我有一个字符串,如:

string str =  "SUM(1,2,3) + 123 - 45 * 3 "; // Say this is an Expression
我想用某种方法得到字符串的数值结果

与字符串类似,我可能有AVG、MIN、MAX和其他聚合函数。

您可以使用。你可以在电视上找到它。版本3.6至少需要.NETCoreApp 3.1或.NETStandard 2.0

int result = await CSharpScript.EvaluateAsync<int>("1 + 2");
int result=wait CSharpScript.evaluateSync(“1+2”);

有关更多示例,请访问。

您可以单独执行数学计算,然后使用extension.ToString()解析结果。

您需要一些东西来解析和计算字符串。您尝试过什么?您可以使用正则表达式提取字符串中的函数,并用计算结果替换它们。至于“计算字符串”,您可以尝试通过数据结构
堆栈
。您需要标记和解析字符串。标记器将字符串中包含的组件分离为标记,解析器生成一个解析树,以便能够计算表达式。看一看。编辑:如果您不想自己实现它,请查看