计算字符串的内容为int

时间:2017-09-20 11:49:22

标签: c# arrays string datatable int

我试图计算字符串的内容。

我有1个字符串,其中包含例如:MyString =" 1 + 5/2 * 4-2"现在我想计算该字符串的结果

我是c#

的新手

我的代码:

string som = "";
int myInt; 

private void getText_Click(object sender, EventArgs e)
{
    string s = (sender as Button).Text;
    som = som + s;
    Console.WriteLine(som);
    string[] words = som.Split(' ');

    foreach (string word in words)
    {
        Console.WriteLine(word);

        myInt += Convert.ToInt32(word);
    }

    Console.WriteLine(myInt);

我已经尝试this answer

 double result = (double) new DataTable().Compute("1+1*4/2-5", null);
 int i = (int) result;  // -2

但后来我得到了System.InvalidCastException

  

指定的演员表无效。

1 个答案:

答案 0 :(得分:8)

您可以使用DataTable.Compute - "技巧":

 double result = (double) new DataTable().Compute("1+1*4/2-5", null);
 int i = (int) result;  // -2

备注 here下提到了语法和支持的运算符。