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

C#中如何向二维数组添加元素并解决空引用异常问题

问题根因

你使用的是C#的交错数组(数组的数组),string[][] pln_arr = new string[20][]; 仅完成了外层数组的初始化,外层数组的20个存储位默认值均为null,没有为内层长度为3的字符串数组分配内存空间,此时直接访问pln_arr[cnt][0]就会触发空引用异常。

修复代码

在每次向内层数组写入数据前,先初始化当前索引位对应长度为3的内层数组即可,满足j.Id存放在单元首位的要求:

string[][] pln_arr = new string[20][];
public int cnt = 0;
foreach (var j in sss)
{
    // 初始化当前位置长度为3的内层数组
    pln_arr[cnt] = new string[3];
    // 将j.Id存入单元首位
    pln_arr[cnt][0] = j.Id.ToString();
    // 剩余两个索引位pln_arr[cnt][1]、pln_arr[cnt][2]可按业务需求存入对应字段
    MessageBox.Show(pln_arr[cnt][0]);
    cnt++;
}
优化提示
  • 如果无法提前确认sss的元素总量,不要用固定长度的交错数组,改用List<string[]>会更灵活,不会出现数组越界问题。
  • 赋值时如果j.Id不是字符串类型,必须调用.ToString()转成字符串后再存入,否则会出现类型不匹配的编译错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 06:36:21