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

C#如何一次性初始化包含类与列表成员的List集合

你这段代码里初始化List<clsClasses>失败的原因有两个:

  • clsClasses的无参构造是私有(clsClasses()没加public修饰符),没法直接用new()的方式创建实例后再初始化属性
  • 用对象初始化器时没明确指定属性名,编译器不知道你写的new clsClassName(...)和List<clsStudentName>对应clsClasses里的哪个属性

下面给两种可行的解决方式:

方式一:用已有的有参构造直接初始化

直接复用clsClasses的带参构造函数,和你之前初始化MathClasses的写法一致:

private static readonly List<clsClasses> MeadowlarkClasses = new()
{
    new clsClasses(
        new clsClassName(1, "Math"),
        new List<clsStudentName>()
        {
            new()
            {
                StudentID = 1,
                StudentFirstName = "Mother",
                StudentLastName = "Teresa"
            },
            new()
            {
                StudentID = 2,
                StudentFirstName = "Father",
                StudentLastName = "Dowling"
            }
        }
    )
};

方式二:修改无参构造为public,用属性初始化器明确指定属性

先把clsClasses的无参构造改成public:

public clsClasses()
{

}

然后就可以用对象初始化器,明确指定clsClassNm和clsStudentNames属性:

private static readonly List<clsClasses> MeadowlarkClasses = new()
{
    new clsClasses()
    {
        clsClassNm = new clsClassName(1, "Math"),
        clsStudentNames = new List<clsStudentName>()
        {
            new()
            {
                StudentID = 1,
                StudentFirstName = "Mother",
                StudentLastName = "Teresa"
            },
            new()
            {
                StudentID = 2,
                StudentFirstName = "Father",
                StudentLastName = "Dowling"
            }
        }
    }
};

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 04:47:17