我想知道我們?nèi)绾卧诒磉_(dá)式樹中表示下面的 c# 代碼。var list = new List<CustomClass>();
list.add(new CustomClass());其中 CustomClass 是一些復(fù)雜類型的類。就像如何使用 Expression.NewArrayInit 初始化數(shù)組一樣
2 回答

烙印99
TA貢獻(xiàn)1829條經(jīng)驗 獲得超13個贊
我建議使用集合初始值設(shè)定項,而不是使用兩個單獨的語句。此時,您可以讓編譯器為您構(gòu)建表達(dá)式樹,因為它是單個表達(dá)式:
Expression<Func<List<CustomClass>>> expr = () => new List<CustomClass> { new CustomClass() };
使用表達(dá)式樹的工具(例如 LINQ 提供程序)也更有可能理解該樹。
生成的樹Expression.ListInitExpression
用作 的列表等價物的排序Expression.NewArrayInit
。
手動編寫等效代碼有點痛苦,但如果您真的需要,您可以反編譯編譯器對該 lambda 表達(dá)式所做的事情。
- 2 回答
- 0 關(guān)注
- 148 瀏覽
添加回答
舉報
0/150
提交
取消