如何获得Lambda MemberExpression的值

时间:2009-05-04 20:26:43

标签: c# lambda

给出一个Lambda表达式:

Define(Expression<Func<T, int>> property)

并使用如下:

Define(x => x.Collection.Count)

获取Count值的最佳方法是什么?使用表达式树有一个简单的方法,还是应该使用反射来解析树以获取PropertyInfo和GetValue()?

1 个答案:

答案 0 :(得分:4)

您可以使用以下命令获取与lambda相对应的委托:

var propDelegate = property.Compile();
var count = propDelegate(...);

propDelegate将是Func<T, int>,您可以通过传入类型为T的必需对象来调用它。