C# 如何获取Lambda MemberExpression的值

C# 如何获取Lambda MemberExpression的值,c#,lambda,C#,Lambda,给定Lambda表达式: Define(Expression<Func<T, int>> property) 获取Count值的最佳方法是什么?表达式树有没有简单的方法,或者我应该使用反射来解析树以获取PropertyInfo和GetValue()?您可以使用以下方法来获取与lambda对应的委托: var propDelegate = property.Compile(); var count = propDelegate(...); propDelegate将是一

给定Lambda表达式:

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

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

您可以使用以下方法来获取与lambda对应的委托:

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

propDelegate将是一个
Func
,您可以通过传入类型为T的所需对象来调用它。

谢谢Denis,这很有效。给出原始示例的工作代码:var propDelegate=property.Compile();var count=propDelegate.DynamicInvoke(新对象[]{instance});实例来自哪里:s?
var propDelegate = property.Compile();
var count = propDelegate(...);