C#高级查询语句字符串处理

时间:2009-06-18 11:54:42

标签: c# .net oop string

我正在寻找最佳实践或库来处理对象树中的字符串..

这是一个例子:

“[年龄] ='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'}

等...

任何建议都会很棒!

3 个答案:

答案 0 :(得分:1)

dynamic LINQ library怎么样?您既可以“按原样”使用,也可以查看它如何构建Expression<Func<T,bool>>谓词(即树)。

答案 1 :(得分:1)

答案 2 :(得分:1)

如果需要将操作存储在树结构中,则应使用后缀或前缀表示法。 例如年龄= 37且性别不为空 应存储为

和=年龄37岁!=性别无效

所以树应该像

        and
   =         !=
age 37  gender  null

您可以使用这些链接获取更多详细信息:Notation Used for OperationsExpressions, Conversion and Evaluation with C (All you need to know about Expressions)