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

如何用for循环对交错数组jagged arrays进行访问、修改、打印操作

C# 交错数组for循环操作方法

交错数组本质是「存储数组的数组」,每个子数组的长度可以独立不同,需要用两层for循环完成元素的访问、修改和打印操作。你现有代码的循环逻辑有两处明显问题:一是C#数组下标默认从0开始而非1,二是只有单层循环无法访问到子数组内的具体元素,调整后的操作如下:

1. 遍历打印所有元素

int[][] numbers = new int[][]{ 
    new int[]{4,5,6,7},
    new int[]{6,88,9},
    new int[]{4}
};

// 外层循环遍历所有子数组
for (int i = 0; i < numbers.Length; i++)
{
    // 可选:新增非空判断避免空引用异常
    if(numbers[i] == null) continue;
    // 内层循环遍历当前子数组的所有元素
    for (int j = 0; j < numbers[i].Length; j++)
    {
        Console.WriteLine($"子数组[{i}]的元素[{j}]值为:{numbers[i][j]}");
    }
}

2. 修改元素值

直接通过交错数组名[子数组索引][子数组内元素索引]的格式赋值即可,单个修改和批量修改示例如下:

// 单个修改:把第二个子数组(索引1)的第二个元素(索引1)从88改为100
numbers[1][1] = 100;

// 批量修改:把所有元素的值加10
for (int i = 0; i < numbers.Length; i++)
{
    if(numbers[i] == null) continue;
    for (int j = 0; j < numbers[i].Length; j++)
    {
        numbers[i][j] += 10;
    }
}

注意事项

  • 不要使用i <= 数组长度的判断逻辑,数组最大下标为长度-1,写等号会触发数组越界异常
  • 内层循环的边界必须取当前子数组的Length属性,不要写死固定值,适配交错数组子数组长度不同的特性
  • 生产环境建议新增子数组非空判断,避免空引用异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 19:18:02