【发布时间】:2013-11-05 12:48:48
【问题描述】:
在 ASP.Net MVC 中有一个 DisplayNameFor(x=>x.Title) 助手。
我想实现类似的行为。
我希望有一个方法可以接受基于User 类(u=>u.Birthdate 或 u=>u.Name)的表达式、一个操作数(更大、更少、等于)和类似DateTime.Now 的值并返回表达式u=>u.Birthdate > DateTime.Now
我知道我必须手动从片段中构建结果表达式。我无法理解的是传递和处理属性表达式。
编辑:
我想调用像GetFilterPredicate(u=>u.Birthdate,FilterOps.GreaterThan,DateTime.Parse("01.01.2013") 这样的方法
或GetFilterPredicate(u=>u.SomeIntProperty,FilterOps.Equals,2)
更新:我创建了一个包含此问题的解决方案以及集合属性过滤的存储库 https://github.com/Alexander-Taran/Lambda-Magic-Filters
【问题讨论】:
-
您要传递表达式树还是 lambda?
-
在问题中添加了我想要的用例
标签: c# lambda expression-trees func