我想知道我们如何在表达式树中表示下面的 c# 代码。var list = new List<CustomClass>();
list.add(new CustomClass());其中 CustomClass 是一些复杂类型的类。就像如何使用 Expression.NewArrayInit 初始化数组一样
2 回答
烙印99
TA贡献1829条经验 获得超13个赞
我建议使用集合初始值设定项,而不是使用两个单独的语句。此时,您可以让编译器为您构建表达式树,因为它是单个表达式:
Expression<Func<List<CustomClass>>> expr = () => new List<CustomClass> { new CustomClass() };
使用表达式树的工具(例如 LINQ 提供程序)也更有可能理解该树。
生成的树Expression.ListInitExpression
用作 的列表等价物的排序Expression.NewArrayInit
。
手动编写等效代码有点痛苦,但如果您真的需要,您可以反编译编译器对该 lambda 表达式所做的事情。
- 2 回答
- 0 关注
- 127 浏览
添加回答
举报
0/150
提交
取消