There are good examples of working infix calculators, and good solutions for the task of parsing a complex string and generating executable C# code, here on CodeProject; I suggest you search for those articles and read them to get ideas: [
^].
To make an infix calculator that really "works" you are going to need to implement the rules for operator precedence, and the use of parentheses to over-ride operator precedence. If you make a post-fix calculator (operators after operands, as used by HP, for example), you will not have this problem.
double x = 3 - 2 / 5 // => 2.0 because standard operator precedence invokes division first
double y = (3 - 2) / 5 // => 0.5 because the parentheses force the subtraction to be evaluated first
For infix calculation, most likely you will want to use a 'Stack, and I suggest you use two 'Stack objects: one for the operands, one for the operators.
So, your expression "1+4+6+7" gets parsed into:
operandStack 7 6 4 1 // top to bottom order
operatorStack + + + // top to bottom order
And the execution sequence starts at the top of the operator stack, pulling out two values from the operand stack, and adding them, and so forth.
For "6/3*3" however, you can't just simply create the stacks like this:
operandStack 3 3 6 // top to bottom order
operatorStack * / // top to bottom order
Because executing multiply first will violate the standard infix priority rule that multiply and divide have equal priority, and the first one encountered reading left to right is executed first.
I hope you can see from this brief example the complexity of what you will need to deal with if you write an infix calculator that implements priority of execution rules most people expect.