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

C#中List<T>属性返回null报错:未初始化集合问题排查

问题描述

我定义了如下简单模型类:

public class IndivudualDetail
{
   public string Address1 { get; set; }
   public string City { get; set; }
}

public class ListDetails
{
    public List<IndivudualDetail> itemlist { get; set; }
}

在控制器中,我尝试按如下方式构建模型:

ListDetails listDetails = new ListDetails();
foreach (var item in Items)
{
    IndivudualDetail indivudualDetail = new IndivudualDetail
    {
        Address1 = item.Address1,
        City = item.City
    };
    listDetails.itemlist.Add(indivudualDetail);
}

此时出现错误提示“listDetails.itemlist.get returned null”,请问我哪里操作有误?

问题原因与解决办法

错误核心是**ListDetails类中的itemlist属性仅声明了类型,未初始化实例**。创建ListDetails对象后,itemlist默认值为null,直接调用Add方法会触发空引用异常。

有两种常用解决方式:

方式一:在ListDetails构造函数中初始化列表

修改模型类,通过构造函数自动初始化itemlist:

public class ListDetails
{
    public List<IndivudualDetail> itemlist { get; set; }
    
    public ListDetails()
    {
        itemlist = new List<IndivudualDetail>();
    }
}

后续创建ListDetails对象时,itemlist会自动成为空列表,可直接调用Add方法。

方式二:实例化ListDetails后手动初始化itemlist

若不想修改模型类,可在控制器代码中先为itemlist赋值:

ListDetails listDetails = new ListDetails();
listDetails.itemlist = new List<IndivudualDetail>();
foreach (var item in Items)
{
    IndivudualDetail indivudualDetail = new IndivudualDetail
    {
        Address1 = item.Address1,
        City = item.City
    };
    listDetails.itemlist.Add(indivudualDetail);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 12:55:22