使用数学运算符评估字符串

有没有一种简单的方法来评估像"(4+8)*2"这样的字符串,这样你就可以获得24的int值?

或者还有很多工作要做到这一点……?

使用Ncalc:

 Expression e = new Expression("(4+8)*2"); Debug.Assert(24 == e.Evaluate()); 

http://ncalc.codeplex.com/

此外,这个问题之前已被提出并且有一些有趣的答案,包括Ncalc: 评估字符串“3 *(4 + 2)”yield int 18

其他人添加了这个,然后它被删除了。 我认为这很酷,因为不需要第三方库。

 课程
     {

         static void Main(string [] args)
         {
             Console.WriteLine(评估( “(4 + 8)* 2”));
             Console.ReadKey();
         }

         public static double Evaluate(字符串表达式)
         {
             DataTable table = new DataTable();
             table.Columns.Add(“expression”,typeof(string),expression);
             DataRow row = table.NewRow();
             table.Rows.Add(行);
             return double.Parse((string)row [“expression”]);
         }

     }