C# 一个lambda表达式中的多个赋值操作

C# 一个lambda表达式中的多个赋值操作,c#,lambda,expression-trees,C#,Lambda,Expression Trees,我正在尝试创建一个动态lambda表达式(从文本解析),它执行多个赋值。创建个人作业是相当容易的,但是我一直在思考如何将它们结合起来。因此,我试图实现的目标与: Action<Entity> action = (entity) => { entity.Property1 = "1"; entity.Property2 = "2"; }; Action动作=(实体)=> { entity.Property1=“1”; entity.Property2=“

我正在尝试创建一个动态lambda表达式(从文本解析),它执行多个赋值。创建个人作业是相当容易的,但是我一直在思考如何将它们结合起来。因此,我试图实现的目标与:

Action<Entity> action = (entity) => 
{ 
    entity.Property1 = "1"; 
    entity.Property2 = "2";
};
Action动作=(实体)=>
{ 
entity.Property1=“1”;
entity.Property2=“2”;
};
是否有一种方法可以组合多个表达式。将表达式赋给一个表达式(因为表达式.Lambda只接受一个表达式作为输入)

--编辑: 为了澄清,我写的代码只是伪代码,所以打字错误(现在已更正)不会改变任何东西。我现在拥有的代码类似于:

Expression parameter = Expression.Parameter(typeof(Entity), "param");
Expression firstProperty = Expression.Property(parameter, "Property1");
Expression first = Expression.Assign(firstProperty, "1");
Expression secondProperty = Expression.Property(parameter, "Property2");
Expression second = Expression.Assign(secondProperty, "2");
Expression final = [INSERT MAGIC HERE]
Action<Entity> action = Expression.Lambda<Action<Entity>>(final, entity).Complie();
Expression parameter=Expression.parameter(typeof(Entity),“param”);
Expression firstProperty=Expression.Property(参数“Property1”);
Expression first=Expression.Assign(firstProperty,“1”);
Expression secondProperty=Expression.Property(参数“Property2”);
表达式second=Expression.Assign(secondProperty,“2”);
表达式final=[在此处插入魔术]
Action=Expression.Lambda(final,entity.Complie();
请注意,属性名称实际上来自文本输入,并且assignment表达式的数量不限于2,只是为了演示。我的问题是,是否有一个表达式可以让我组合assignment表达式,或者我必须为每个表达式创建不同的lambda?

试试这个魔术:

Expression.Block(first, second);

第二次作业后,你不缺一个分号吗?无论如何,据我所知,表达式的数量没有限制。您遇到了什么编译错误?更新了描述。我没有遇到编译器错误,只有在我尝试表达式时才会出现。例如,这是正确的,因为Property1=“1”&&Property2=“2”无效。不幸的是,.net 3.5:/@Mic.net 3.5表达式树只支持实际表达式,不支持语句。这就是启用LINQ所需的全部内容。