gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-30 01:24:02 24 4
gpt4 key购买 nike

我正在尝试创建一个动态 lambda 表达式(从文本解析),它执行多个任务。创建个人作业相当容易,但我对如何组合它们感到困惑。所以我要实现的目标与:

Action<Entity> action = (entity) => 
{
entity.Property1 = "1";
entity.Property2 = "2";
};

有没有办法将多个 Expression.Assign 表达式合并为一个(因为 Expression.Lambda 只接受一个 Expression 作为输入)?

--编辑:因此,为澄清起见,我编写的代码只是伪代码,因此拼写错误(现已更正)不会改变任何内容。我现在拥有的代码是这样的:

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();

请注意,属性名称实际上来自文本输入,赋值表达式的数量不限于 2 个,仅用于演示目的。我的问题是,是否有一个表达式可以让我组合赋值表达式,或者我是否必须为每个表达式创建不同的 lambda?

最佳答案

试试这个魔法:

Expression.Block(first, second);

关于c# - 一个 lambda 表达式中的多个赋值操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10483171/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com