为了账号安全,请及时绑定邮箱和手机立即绑定

如何在表达式树中编写新的 List<CustomClass>()?

如何在表达式树中编写新的 List<CustomClass>()?

C#
繁星点点滴滴 2021-06-02 08:37:00
我想知道我们如何在表达式树中表示下面的 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 表达式所做的事情。


查看完整回答
反对 回复 2021-06-05
  • 2 回答
  • 0 关注
  • 127 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信