有什么方法可以获得简单计算表达式的结果吗?

时间:2009-06-30 04:24:59

标签: c# regex

我在配置文件(XML文件)中有一些值,其值如下:

 <IncreamentInSeconds>24*60*60</IncreamentInSeconds>
 ...

我可以在那里放置86400值,但它更具描述性,因为它是一个计算表达式。这只是一个简单的例子。还有一些其他表达式,但它们都是一种计算表达式。

我不确定是否有任何方法可以解析表达式并在C#中获取结果值。我想过Excel组件可能会有所帮助,但我认为这可能会导致性能问题(用单元格加载excel工作表?)。任何其他方式来获得结果?

顺便说一下,我看到一些XCode示例通过使用shell命令来评估结果来获取表达式结果(shell甚至可以采用变量定义)。不确定Windows中是否有可以使用的shell命令,以便我可以执行shell命令来获得结果?

2 个答案:

答案 0 :(得分:1)

执行此操作的最简单方法可能是使用Microsoft.JScript http://riteshk.blogspot.com/2007/05/how-to-calculate-value-with-regular.html

如果您想在不使用javascript库的情况下执行此操作,则可以始终使用反向波兰表示法: http://en.wikipedia.org/wiki/Reverse_Polish_notation

将中缀转换为RPN的链接: http://montcs.bloomu.edu/~bobmon/Information/RPN/infix2rpn.shtml

此处还有指向RPN表达式解析器的链接: http://www.codeproject.com/KB/cs/rpn_expressionparser.aspx

答案 1 :(得分:0)

我想我得到了答案。我发现CodeDOM cab用于从计算表达式中获取结果。

这是an article with examples