I have a List<String> that is full of values and operators.
["123", "+", "(", "890", "-", "15.00", ")"]
I know that I can make an algorithm that will push these numbers and and operators onto a stack and pop them off and evaluate as I go. But, is there a better way to do with without using a external library?
Pushing the numbers and operators onto a stack would be an interpreter.
The obvious better way to do this (for some definition of “better”) is to write a compiler!
You already have the input split into lexical tokens, so you can skip implementing a lexer and can dive right into building the AST. You can find suitable classes to transform your input to in the System.Linq.Expressions Namespace; have a look at the Expression Class. You can wrap the result in a lambda expression, compile it to IL and execute it on the CLR!