交错数组(Jagged Array)

是一个数组,其元素是数组,大小可能不同。 交错数组有时称为“数组的数组”。其元素是引用类型,初始化为 null。

必须先初始化交错数组的元素,然后才能使用它们。 每个元素本身都是数组。 还可以使用初始值设定项填充数组元素的值。 使用初始值设定项时,无需数组大小。

交错数组的声明和初始化方式如下:

// 声明一个交错数组
int[][] jaggedArray;

// 初始化交错数组
jaggedArray = new int[3][];
jaggedArray[0] = new int[2] { 1, 2 };
jaggedArray[1] = new int[3] { 3, 4, 5 };
jaggedArray[2] = new int[4] { 6, 7, , 9 };

 在上面的例子中,我们声明了一个名为 jaggedArray 的交错数组,它包含了3个一维数组。然后,我们分别初始化了这3个一维数组,每个一维数组的长度分别为2、3和4。

交错数组的访问方式与普通的多维数组略有不同。我们可以使用两个索引来访问交错数组的元素,第一个索引用于访问一维数组,第二个索引用于访问一维数组中的元素。例如:

int value = jaggedArray[1][2]; // 访问第2个一维数组中的第3个元素,即值为5

交错数组和二维数组有什么不同:

C# 中的交错数组(Jagged Array)和二维数组(Multidimensional Array)是两种不同的数组类型。(Jagged:交错的,参差不齐的。Multidimensional:多维的,多面的。)

  1. 交错数组是由多个一维数组组成的数组,每个一维数组的长度可以不同。换句话说,交错数组是一个数组的数组。可以将其看作是一个表格,其中每一行都是一个独立的一维数组。
  2. 二维数组是一个由固定大小的行和列组成的数组,每个元素都可以通过行索引和列索引进行访问。二维数组可以看作是一个矩阵或者一个表格。

因此,交错数组和二维数组在概念上是不同的。交错数组可以具有不同长度的行,而二维数组的行和列都是固定的。

下面是一个交错数组的示例:

int[][] jaggedArray = new int[3][];
jaggedArray[0] = new int[] { 1, 2, 3 };
jaggedArray[1] = new int[] { 4, 5 };
jaggedArray[2] = new int[] { 6, 7, 8, 9 };

// 访问交错数组的元素
Console.WriteLine(jaggedArray[0][1]); // 输出 2
Console.WriteLine(jaggedArray[1][0]); // 输出 4
Console.WriteLine(jaggedArray[2][3]); // 输出 9

而下面是一个二维数组的示例:

int[,] multidimensionalArray = new int[3, 2] { { 1, 2 }, { 3, 4 }, { 5, 6 } };

// 访问二维数组的元素
Console.WriteLine(multidimensionalArray[0, 1]); // 输出 2
Console.WriteLine(multidimensionalArray[1, 0]); // 输出 3
Console.WriteLine(multidimensionalArray[2, 1]); // 输出 6

总结来说,交错数组和二维数组在定义和访问方式上有所不同,交错数组是由多个一维数组组成的数组,而二维数组是一个固定大小的矩阵。

03-16 20:15