我学会了使用 Expression 类来操作动态 lambda 表达式。
但是,ForEach 方法 (LINQ
) 中使用的 lambda 表达式似乎有点不同,因为它是一个赋值。
例如,这样做:
myList.ForEach(x => x.Status = "OK") ;
将更新 myList 列表中每个对象的 Status 属性。
如何使用 Expression 对象来完成它?我没有在 Expression 中找到任何设置属性的方法...它是否仅用于检索属性值?
最佳答案
从 .NET 4 开始,赋值确实存在于表达式树中(参见 Expression.Assign
)(它用于支持 dynamic
),但 C# 不支持它编译器,它仍然只支持将 lambda 表达式转换为表达式树的真正“表达式”。
关于c# - 如何创建动态 lambda 来使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8271804/