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

C#中以其他类为类型定义List属性?实例报错排查

问题分析:"Object reference not set to an instance of an object." 异常原因及修复方案

你遇到的空引用异常,核心问题出在**DataList类的StoreListData属性未初始化**上,具体细节如下:

  • 当你执行var storeList = new DataList();时,C#中引用类型(比如List<StoreList>)的默认值是null,所以此时storeList.StoreListData是一个空引用
  • 接下来你在foreach循环里调用storeList.StoreListData.Add(...),试图对一个null的列表执行添加操作,自然就触发了空引用异常

修复方案有两种,任选其一即可:

方案1:在DataList类定义时初始化属性

修改DataList的代码,直接在属性声明时创建空列表实例,这样每次实例化DataList时,StoreListData都会自动处于可用状态:

class DataList { 
    public List<StoreList> StoreListData { get; set; } = new List<StoreList>(); 
}

方案2:实例化DataList后手动初始化列表

如果不想修改DataList类的定义,就在创建storeList对象后,立即为StoreListData赋值一个新的空列表:

var storeList = new DataList();
storeList.StoreListData = new List<StoreList>(); // 新增这行代码初始化列表
foreach (var stores in liststoreIds) {
    storeList.StoreListData.Add(new StoreList { 
        Code = stores.code, 
        Name = stores.name, 
        StoreId = stores.store_id 
    });
}

额外小提示:如果liststoreIds也存在返回null的可能,建议在foreach前加个判空判断(比如if(liststoreIds != null)),可以避免更多潜在的空引用问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:50:18