【问题标题】:How to parse AND/OR input in c#?如何在 C# 中解析 A​​ND/OR 输入?
【发布时间】:2012-09-20 19:19:47
【问题描述】:

我想解析一个类似 SQL 的输入,例如:

SEX = 'MALE' AND AGE > 20

然后根据“sql”输入搜索我的 c# 项目数组。

例如上面的例子,我会在我的数据中搜索所有 Item.Sex 属性设置为“MALE”且 Item.Age 属性大于 20 的项目。

这是一个简单的示例,您可以轻松地开始想象更复杂的场景。例如:

(SEX = 'MALE' AND AGE > 20) OR (SEX = 'FEMALE' AND AGE < 30)

我需要能够支持以下运营商:

=
>
<
<>
() - for precedence
AND
OR

我有一种感觉,我最终不得不自己从头开始编写代码,但不想重新发明轮子。在研究了一会儿之后,我确实遇到了对解析器/语法等的引用,但不太确定这些是否符合要求。

【问题讨论】:

标签: c# sql parsing grammar logical-operators


【解决方案1】:

您可能需要自己解析输入,但使用 ANTLR 等解析器生成器,工作量并不大。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-25
    • 2017-01-11
    • 2015-12-31
    • 2010-09-18
    • 2015-04-22
    • 1970-01-01
    相关资源
    最近更新 更多