在.NET中实现属性过滤器

时间:2011-08-11 13:38:53

标签: .net algorithm reflection

我必须过滤一个对象列表。

过滤器应由用户使用逻辑OR / AND运算符组成,并使用括号进行分组。

说,像这样:

enter image description here

说,我们有对象MyObj及其属性Prop1,Prop2,Prop3

拥有myObjList用户可以过滤Prop1 == aValue AND Prop2< otherValue OR Prop2> thirdvalue

是否有一些已知的(反射)机制允许管理这种过滤操作?

3 个答案:

答案 0 :(得分:1)

您可以使用动态linq在运行时agaist对象列表中构造过滤器语句。

以下是Scott Guthrie博客的link解释实施情况。

答案 1 :(得分:1)

构建表达式树,然后编译它们以给你一个委托,你可以将它应用于你想要过滤的对象。

MSDN有一些介绍性报道:http://msdn.microsoft.com/en-us/library/bb397951.aspx

答案 2 :(得分:0)

这是另一个link来实现动态linq,使用更多的specification pattern