如何创建动态lambda来使用它?

met*_*cam 2 c# linq foreach lambda expression

我学会了用Expression类操作动态lambda表达式.但是,ForEach方法(LINQ)中使用的lambda表达式似乎有点不同,因为它是一个赋值.

例如,这样做:

myList.ForEach(x => x.Status = "OK") ;
Run Code Online (Sandbox Code Playgroud)

将更新myList列表中每个对象的Status属性.

如何使用Expression对象完成它?我没有在Expression中找到任何设置属性的方法......它仅用于检索属性值吗?

Jon*_*eet 6

从.NET 4(用于支持)开始,表达式树存在赋值(请参阅Expression.Assign参考资料dynamic),但C#编译器不支持它,它仍然只支持将lambda表达式转换为表达式树的真正"表达式".