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

如何初始化特殊数组及矩形不规则数组?int[,][] = { // something }

嘿,我来帮你搞清楚怎么初始化int[,][]这种混合数组类型!这其实是一个二维矩形数组,其中每一个元素又都是一个一维交错数组(说白了就是每个子数组的长度可以不一样,不用整齐划一)。下面给你两种实用的初始化方式:

1. 声明时直接初始化

如果子数组的内容和长度是确定的,可以直接在声明时一次性完成初始化,注意要显式用new int[]创建每个子数组:

int[,][] mixedArray = {
    // 矩形数组的第一行:两个子数组
    { new int[] { 1, 2 }, new int[] { 3, 4, 5 } },
    // 矩形数组的第二行:另外两个子数组(长度可以和第一行的不一样)
    { new int[] { 6 }, new int[] { 7, 8, 9, 10 } }
};

这里mixedArray是一个2行2列的矩形数组,你可以看到:

  • mixedArray[0,0]是长度为2的数组[1,2]
  • mixedArray[0,1]是长度为3的数组[3,4,5]
  • 完全不用强制所有子数组长度相同,这就是它的灵活之处。
2. 分步初始化(更灵活)

如果子数组的长度需要动态确定(比如根据变量计算),可以先创建矩形数组的框架,再逐个给每个位置赋值子数组:

// 先创建一个2行3列的矩形数组框架,每个元素默认是null
int[,][] mixedArray = new int[2,3][];

// 给每个位置的子数组赋值,长度可以按需定义
mixedArray[0,0] = new int[] { 10, 20 };
mixedArray[0,1] = new int[5]; // 先创建长度为5的空数组,之后可以逐个填充元素
mixedArray[0,2] = new int[] { 30 };
mixedArray[1,0] = new int[] { 40, 50, 60 };
mixedArray[1,1] = Array.Empty<int>(); // 甚至可以是空数组
mixedArray[1,2] = new int[] { 70, 80 };

这种方式适合需要动态生成子数组的场景,比如从文件读取数据后再填充内容。

小提醒

别尝试省略new int[]直接写嵌套大括号,比如{ { {1,2}, {3} }, { {4}, {5,6} } }——C#编译器没法自动推断int[,][]的结构,必须显式声明每个子数组的创建。

内容的提问来源于stack exchange,提问作者J. Doe

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:57:34