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