我正在寻找最佳实践或库来处理对象树中的字符串..
这是一个例子:
“[年龄] ='37'并且[性别]不是空的[选择]>'2003/01/01'和[idnumber]是空的([saresident] ='52'或[公民身份]比如'abc%')“
我应该能够把它变成这样的树:
{attribute='age', operator='=', value='37', opperand='And'}
{attribute='gender', operator='Is Not Null', value='', opperand='And'}
{attribute='optindate', operator='>', value='2003/01/01', opperand='And'}
等...
任何建议都会很棒!
答案 0 :(得分:1)
dynamic LINQ library怎么样?您既可以“按原样”使用,也可以查看它如何构建Expression<Func<T,bool>>
谓词(即树)。
答案 1 :(得分:1)
答案 2 :(得分:1)
如果需要将操作存储在树结构中,则应使用后缀或前缀表示法。 例如年龄= 37且性别不为空 应存储为
和=年龄37岁!=性别无效
所以树应该像
and
= !=
age 37 gender null
您可以使用这些链接获取更多详细信息:Notation Used for Operations和Expressions, Conversion and Evaluation with C (All you need to know about Expressions)