You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何向已有对象添加嵌套对象列表属性?

解决嵌套列表属性的一次性初始化问题

你当前的代码报错是因为在对象初始化器中不能直接调用方法(比如Add()),对象初始化器的语法要求只能对属性进行赋值操作。对于List<T>类型的属性,C#提供了集合初始化器语法,可以直接在初始化时填充元素,实现一次性嵌套添加。

正确的写法示例

// Classes
public class FirstList
{
    public int Id { get; set; }
    public string Text { get; set; }
}

public class SecondList
{
    public int Id { get; set; }
    public string Text { get; set; }
    public List<FirstList> Firsts { get; set; } = new List<FirstList>();
}

public class ThirdList
{
    public int Id { get; set; }
    public string Text { get; set; }
    public List<SecondList> Seconds { get; set; } = new List<SecondList>();
}

// Program
ThirdList item = new ThirdList
{
    Id = 30,
    Text = "Third Text",
    Seconds = 
    {
        new SecondList
        {
            Id = 20,
            Text = "Second Text",
            Firsts = 
            {
                new FirstList
                {
                    Id = 10,
                    Text = "First Text"
                }
                // 可继续添加更多FirstList对象,用逗号分隔
            }
        }
        // 可继续添加更多SecondList对象,用逗号分隔
    }
};

关键说明

  1. 对于已经默认初始化的List属性(比如你的代码里用= new List<...>()完成了初始化),直接用{ 元素1, 元素2 }的集合初始化器语法就能添加元素,无需重新new List<...>。
  2. 如果List属性没有默认初始化,则需要先实例化再用集合初始化器,比如:Firsts = new List<FirstList> { ... }。

这样就能一次性完成所有嵌套属性的初始化,不需要分步骤调用Add()方法。

内容的提问来源于stack exchange,提问作者Charlie Lipperd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 11:05:22