我必須篩選對象列表。在.NET中實現屬性篩選器
過濾器應由用戶使用邏輯OR/AND運算符組成,並使用括號進行分組。
說,這樣的事情:
說,我們有對象MyObj中和它的屬性PROP1,PROP2,Prop3
有myObjList用戶可以過濾元素PROP1 ==安勤和Prop2 < otherValue OR Prop2> thirdvalue
是否有一些已知(反射)機制允許管理這種過濾操作?
我必須篩選對象列表。在.NET中實現屬性篩選器
過濾器應由用戶使用邏輯OR/AND運算符組成,並使用括號進行分組。
說,這樣的事情:
說,我們有對象MyObj中和它的屬性PROP1,PROP2,Prop3
有myObjList用戶可以過濾元素PROP1 ==安勤和Prop2 < otherValue OR Prop2> thirdvalue
是否有一些已知(反射)機制允許管理這種過濾操作?
您可以使用動態linq在運行時創建過濾器語句agaist對象列表。
這是一個link Scott Guthrie的博客,解釋實施。
構建表達式樹,然後編譯它們給你一個委託,你可以應用到你想要過濾的對象。
MSDN有一些介紹報道:http://msdn.microsoft.com/en-us/library/bb397951.aspx
這裏是另一個link實現動態LINQ,使用更多的是specification pattern的。