Evaluate string with math operators

Mark Lalor picture Mark Lalor · Apr 30, 2011 · Viewed 51.3k times · Source

Is there an easy way to evaluate strings like "(4+8)*2" So that you'd get the int value of 24?

Or is there a lot of work needed to get this done...?

Answer

Richard Brightwell picture Richard Brightwell · Apr 30, 2011

Someone else added this and then it got deleted. I thought it was pretty cool because no 3rd party libraries required.

class Program
    {

        static void Main(string[] args)
        {
            Console.WriteLine(Evaluate("(4+8)*2"));
            Console.ReadKey();
        }

        public static double Evaluate(string expression)
        {
            DataTable table = new DataTable();
            table.Columns.Add("expression", typeof(string), expression);
            DataRow row = table.NewRow();
            table.Rows.Add(row);
            return double.Parse((string)row["expression"]);
        }

    }