C# 中交错数组和二维数组的区别

原文: C# 交错数组

   轩总

交错数组与二维数组的区别,可以直观的理解为交错数组每一行的长度是可以不一样的。

如果说二维数组像是唐诗,那么交错数组就是宋词,每一句的长短没有限制。

// 声明一个交错数组 a,a 中有三个元素,分别是 a[0],a[1],a[2] 每个元素都是一个数组
int[][] a = new int[3][]; 
//以下是声明交错数组的每一个元素的,每个数组的长度可以不同
a[0] = new int[] { 1,2,3 };
a[1] = new int[] { 4,5,6,7,8 };
a[2] = new int[] { 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 };
更多解析

  CuteLad

C# 中的交错数组可以用 C/C++ 中的二维数组的定义来理解——数组的数组。

(借用楼上的笔记代码)

int[][] a = new int[3][];

这句话定义了 a 是一个数组的数组:

然后 a 的每个元素分别是:

a[0] = new int[] { 1,2,3 };
a[1] = new int[] { 4,5,6,7,8 };
a[2] = new int[] { 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 };

然后在使用的时候 a[1][2] 可以理解为 (a[1])[2],即先计算 a[1] 获得 a 的第 2 个元素(一个数组),然后从这个整型数组中获取第 3 个元素。