C# int[,] 和 int[][]

int[] 一维数组

int[,]  二维数组

 int[,,] 三维数组 

int[] []  交错数组 又称“数组的数组”


一维数组声明与初始化

声明:  

int[] a = new int[];

声明与初始化:  

1 int array1 = new int[] {1,2,3,4};
2 int array1 = {1,2,3,4};    //  快捷声明和初始化的方式

不初始化的情况下声明数组变量,但必须使用 new 运算符向此变量分配数组  

1 int[] array3;
2 array3 = new int[] { 1, 3, 5, 7, 9 };   // OK
3 // array3 = {1, 3, 5, 7, 9};     // Error
 

声明  
1 int[,]  array = new int[2,4]    
2 int[,,] array2 = new int[2,5,4]
声明初始化   
1 int array2D = new int[,] { [1,2}, {3,4}, {3,5}}
2 int[,] array2Da = new int[3, 2] { { 1, 2 }, { 3, 4 }, { 5, 6 } };
3 int[,,] array3D = new int[,,] { { { 1, 2, 3 }, { 4, 5, 6 } }, { { 7, 8, 9 }, { 10, 11, 12 } } };
4 int[,,] array3D =new int[2,2,3]{ { { 1, 2, 3 }, { 4, 5, 6 } }, { { 7, 8, 9 }, { 10, 11, 12 } } };
如果选择在不初始化的情况下声明数组变量,则必须使用 new 运算符将数组赋予变量 
1 int[,] array5;
2 array5 = new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } }; // OK
3 //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 个整数组成的数组。 
1 int[][] jaggedArray = new int[][]{
2     new int[]{1,3,4,5},
3     new int[] {0,2,4},
4     new int[] {2,4}
5    };

或者 

1 int[][] jaggedArray ={
2     new int[]{1,3,4,5},
3     new int[] {0,2,4},
4     new int[] {2,4}
5     }

 

 多维数组与交错数组 理解上是没有多大的差异的,交错数组实际上实现了多维数组的差异化,使用的时候更加自由。

 在C#编译里面,多维数组和差异数组是无法隐性转换的。 作为参数的时候要注意统一。

原文地址:https://www.cnblogs.com/ybqjymy/p/12895561.html