C# 制作一个动态计算器

C# 制作一个动态计算器,c#,calculator,C#,Calculator,我想做一个计算器。 我现在的密码是 string input; input = Console.ReadLine(); List<string> numbers = new List<string>(); string curNumber = ""; foreach (char c in input) {

我想做一个计算器。 我现在的密码是

            string input;
            input = Console.ReadLine();
            List<string> numbers = new List<string>();

            string curNumber = "";

            foreach (char c in input)
            {
               if (c =='+'|| c =='-'||c =='/'||c =='*')
               {
                   numbers.Add(curNumber);
                   curNumber = "";
               }
               else
               {
                   curNumber += c.ToString();
               }
            }
字符串输入;
input=Console.ReadLine();
列表编号=新列表();
字符串curNumber=“”;
foreach(输入中的字符c)
{
如果(c='+'| | c='-'| | c='/'| | c=='*'))
{
数字。添加(curNumber);
curNumber=“”;
}
其他的
{
curNumber+=c.ToString();
}
}
现在我不知道我该如何处理这些数字。 例如,如果输入为:20+3+13-17。 我如何计算这些数字? 你将如何在我的代码中实现这种逻辑

var res = new DataTable().Compute("1-2/3*4", null);

编辑:另请注意,您可以使用数据表中的字段执行诸如对名为“总计”的列求和等功能


另一个选项是使用IronPython和IronRuby:

    var res = new IronPython.Hosting.PythonEngine().EvaluateAs<double>("1-2/3*4");
var res=new IronPython.Hosting.PythonEngine().EvaluateAs(“1-2/3*4”);

我的首选选项是使用

hack:使用现有方法
DataTable.Compute
string input=“100+20+3-17+2+7/3+3%2+100*10”;var dt=新的System.Data.DataTable();var结果=dt.Compute(输入,空)//result=1111.33333loool这么简单?我不敢相信这是如此简单:你能告诉我这里发生了什么,或者在解释的地方给我发一个链接吗?如果你发现任何答案都有用,请标记为“答案”,这样其他用户就会知道有解决方案。你能给我解释这里发生了什么,或者在解释的地方给我发一个链接吗?
    var res = new IronPython.Hosting.PythonEngine().EvaluateAs<double>("1-2/3*4");