给出一个Lambda表达式:
Define(Expression<Func<T, int>> property)
并使用如下:
Define(x => x.Collection.Count)
获取Count值的最佳方法是什么?使用表达式树有一个简单的方法,还是应该使用反射来解析树以获取PropertyInfo和GetValue()?
答案 0 :(得分:4)
您可以使用以下命令获取与lambda相对应的委托:
var propDelegate = property.Compile();
var count = propDelegate(...);
propDelegate将是Func<T, int>
,您可以通过传入类型为T的必需对象来调用它。