int[] 一维数组
int[,] 二维数组
int[] [] 交错数组 又称“数组的数组”
一维数组声明与初始化
声明: int[] a = new int[];
声明与初始化: int array1 = new int[] {1,2,3,4};
int array1 = {1,2,3,4}; // 快捷声明和初始化的方式
不初始化的情况下声明数组变量,但必须使用 new
运算符向此变量分配数组
int[] array3;
array3 = new int[] { 1, 3, 5, 7, 9 }; // OK
// array3 = {1, 3, 5, 7, 9}; // Error
int[,] 二维数组 int[, , , ] 三维数组 多维数组
声明 int[,] array = new int[2,4] int[,,,] array2 = new int[2,5,4]
声明初始化 int array2D = new int[,] { [1,2}, {3,4}, {3,5}}
int[,] array2Da = new int[3, 2] { { 1, 2 }, { 3, 4 }, { 5, 6 } };
int[, ,] array3D = new int[,,] { { { 1, 2, 3 }, { 4, 5, 6 } }, { { 7, 8, 9 }, { 10, 11, 12 } } };
int[, , ] array3D =new int[2,2,3]{ { { 1, 2, 3 }, { 4, 5, 6 } }, { { 7, 8, 9 }, { 10, 11, 12 } } };
如果选择在不初始化的情况下声明数组变量,则必须使用 new
运算符将数组赋予变量
int[,] array5;
array5 = new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } }; // OK
//array5 = {{1,2}, {3,4}, {5,6}, {7,8}}; // Error
交错数组是元素为数组的数组。 交错数组元素的维度和大小可以不同。
声明:
int[][] jaggedArray = new int[3][];
初始化:
jaggedArray[0] = new int[5];
jaggedArray[1] = new int[4];
jaggedArray[2] = new int[2];
每个元素都是一维整数数组。 第一个元素是由 5 个整数组成的数组,第二个是由 4 个整数组成的数组,而第三个是由 2 个整数组成的数组。
int[][] jaggedArray = new int[][]{
new int[]{1,3,4,5},
new int[] {0,2,4},
new int[] {2,4}
};
或者
int[][] jaggedArray ={
new int[]{1,3,4,5},
new int[] {0,2,4},
new int[] {2,4}
}
多维数组与交错数组 理解上是没有多大的差异的,交错数组实际上实现了多维数组的差异化,使用的时候更加自由。
在C#编译里面,多维数组和差异数组是无法隐性转换的。 作为参数的时候要注意统一。
微软使用手册 https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/arrays/single-dimensional-arrays