VB.NET逻辑表达式计算器
我需要测试字符串中保存的逻辑表达式,看看它的计算结果是 TRUE 还是 FALSE。(srig 是动态构建的)
例如,结果字符串可能包含“'dog'<'cat' OR (1>4 AND 4<6)”。字符串中没有变量,它将进行逻辑计算。它只会包含简单的运算符 = > < >< >= <= 和 AND 、 OR 以及左括号和右括号、字符串常量和数字。 (转换为正确的语法 && || 等)
我目前通过创建 jscipt 函数并将其编译成 .dll 来实现这一点。然后我在 VB.NET 项目中引用该 .dll。
class ExpressionEvaluator
{
function Evaluate(Expression : String)
{
return eval(Expression);
}
}
是否有使用内置 .NET 函数或 Lamdba 表达式的更简单的方法。
I need to test a logical expression held in a string to see if it evaluate to TRUE or FALSE.(the strig is built dynamically)
For example the resulting string may contain "'dog'<'cat' OR (1>4 AND 4<6)". There are no variables in the string, it will logically evaluate. It will only contain simple operators = > < >< >= <= and AND , OR and Open and Close Brackets, string constants and numbers. (converted to correct syntax && || etc.)
I currently acheive this by creating a jscipt function and compiling it into a .dll. I then reference the .dll in my VB.NET project.
class ExpressionEvaluator
{
function Evaluate(Expression : String)
{
return eval(Expression);
}
}
Is there a simpler method using built in .NET functions or Lamdba expressions.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我尝试了该项目的演示,您可能会喜欢它而不是当前的评估方法。请注意,它不使用 lamdba 表达式或任何构建它的 .NET 方法。
http://web1.codeproject.com/KB/vb/expression_evaluator。 aspx?msg=1151870
I tried the demo out for this project and you might like it over you current method of evaluating. Note, it doesn't use lamdba expressions or any build it .NET methods.
http://web1.codeproject.com/KB/vb/expression_evaluator.aspx?msg=1151870
尝试一下: http://www.codeproject.com/KB/cs/ExpressionEval.aspx
更多指导:http: //www.thefreakparade.com/2008/07/evaluating-expressions-at-runtime-in-net-c/
好的:http://flee.codeplex.com/
您正在寻找的布尔示例: http://flee.codeplex.com/ wikipage?title=BooleanExpression&referringTitle=Examples (忽略变量添加部分,因为您不是在寻找变量)
try out: http://www.codeproject.com/KB/cs/ExpressionEval.aspx
More guidance :http://www.thefreakparade.com/2008/07/evaluating-expressions-at-runtime-in-net-c/
Good one: http://flee.codeplex.com/
Boolean Example which you are looking for : http://flee.codeplex.com/wikipage?title=BooleanExpression&referringTitle=Examples (ignore the variable adding part as you are not looking for variable)