我正在尝试评估以字符串
输入的表达式示例:string svar1="1 * 2 * 3";
我需要能够评估回答6。
我正在考虑用空格解析它,然后将操作符与开关匹配到每个函数(需要做+, - ,*,/,%等),但这似乎是一个非常繁琐的方式,因为有这么多运营商代码。有没有办法将包含运算符的char / string转换为实际运算符?
答案 0 :(得分:4)
一种简单的方法是使用DataTable.Compute Method
static void Main(string[] args)
{
DataTable table = new DataTable();
var result = table.Compute("1 * 2 * 3","");
}
答案 1 :(得分:1)
不,此功能未包含在任何标准.NET程序集中。你的方法除了单调乏味外,还容易出错。
您正在寻找数学表达式解析器,NCalc就是这样一个库。
答案 2 :(得分:0)
看起来像一个名为NCalc的库可以完成你需要的东西。
答案 3 :(得分:0)
如果你想要一些见解/代码来证明这是如何正确完成的,使用正确的优先规则,在C#中这是一个很好的文章序列: