数组具有以下属性:
-
当创建了数组实例时,将建立维度数和每个维度的长度。 在实例的生存期内,这些值不能更改。
-
数值数组元素的默认值设置为零,而引用元素的默认值设置为 null。
-
交错数组是数组的数组,因此其元素是引用类型并初始化为 null。
-
数组的索引从零开始:具有 n 个元素的数组的索引是从 0 到 n-1。
-
数组元素可以是任何类型,包括数组类型。
-
数组类型是从抽象基类型 Array 派生的引用类型。 由于此类型实现了 IEnumerable 和 IEnumerable<T>,因此可以对 C# 中的所有数组使用 foreach 迭代。
交错数组是元素为数组的数组。 交错数组元素的维度和大小可以不同。 交错数组有时称为“数组的数组”。以下示例说明如何声明、初始化和访问交错数组。
必须初始化 jaggedArray 的元素后才可以使用它。 可以如下例所示初始化该元素:jaggedArray[0] = new int[5]; jaggedArray[1] = new int[4]; jaggedArray[2] = new int[2];
jaggedArray[0] = new int[] { 1, 3, 5, 7, 9 }; jaggedArray[1] = new int[] { 0, 2, 4, 6 }; jaggedArray[2] = new int[] { 11, 22 };
int[][] jaggedArray2 = new int[][] { new int[] {1,3,5,7,9}, new int[] {0,2,4,6}, new int[] {11,22} };
可以使用下面的速记格式。 请注意:不能从元素初始化中省略 new 运算符,因为不存在元素的默认初始化:
C#
int[][] jaggedArray3 = { new int[] {1,3,5,7,9}, new int[] {0,2,4,6}, new int[] {11,22} };
可以混合使用交错数组和多维数组。 下面声明和初始化一个一维交错数组,该数组包含大小不同的三个二维数组元素。 有关二维数组的详细信息,请参阅多维数组(C# 编程指南)。
C#
int[][,] jaggedArray4 = new int[3][,] { new int[,] { {1,3}, {5,7} }, new int[,] { {0,2}, {4,6}, {8,10} }, new int[,] { {11,22}, {99,88}, {0,9} } }; int[] arry1 = new int[5]; int[] arry2 = new int[] { 1,3,5,7,9}; int[] arry3 = { 1,2,3}; int[,] arry = new int[2,3]; int[,] array4 = {{1,2,3},{4,5,6} }; // int[][] arry5 = { { 1, 2, 3 }, { 4, 5, 6 } }; 报错 int[][] ja = new int[6][]; //int[,] ja = new int[3,5]; int[][] i ={new int[3]{2,32,3},new int[4]{4,3,2,3}}; int[,] n = new int[,] {{1,2},{3,4},{5,6} }; Console.WriteLine(array4.Length +"" + array4.Rank);//数组长度加维度 //数组初始化 int[,] arrayd = new int[,]{{1,2},{3,4},{5,6},{5,6}};//4行2列 int[,] array2da = new int[4, 2] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 5, 6 } };//4行2列 string[,] array2db = new string[3, 2] {{"ad","ffd"},{"ddas","fsfa"},{"fad","dasf"} }; // Three-dimensional array. int[, ,] array3D = new int[,,] { { { 1, 2, 3 }, { 4, 5, 6 } }, { { 7, 8, 9 }, { 10, 11, 12 } } }; // The same array with dimensions specified. int[, ,] array3Da = new int[2, 2, 3] { { { 1, 2, 3 }, { 4, 5, 6 } }, { { 7, 8, 9 }, { 10, 11, 12 } } }; //交错数组 int[][] jaggedArray = new int[3][];