二维数组的行数可以使用Length属性获得,但由于C#中支持不规则数组,因此二维数组中每一行中的列数可能不会相同 如何获取二维数组中每一维的列数呢? 答案还是Length属性,因为二维
二维数组的行数可以使用Length属性获得,但由于C#中支持不规则数组,因此二维数组中每一行中的列数可能不会相同
如何获取二维数组中每一维的列数呢?
答案还是Length属性,因为二维数组的每一维都可以看做一个一维数组,而一维数组的长度是可以使用Length属性获得。
例如,下面代码定义一个不规则二维数组,并通过遍历其行数、列数,输出二维数组中的内容,
代码如下:
staticvoid Main(string[] args) { int[][] arr = newint[3][];// 创建二维数组,指定行数,不指定列数 arr[0] = newint[5];// 第一行分配5个元素 arr[1] = newint[3];// 第二行分配3个元素 arr[2] = newint[4];// 第三行分配4个元素 for(int i=0;i<arr.Length;i++)//遍历行数 { for(int j = 0; j <arr[i].Length; j++)//遍历列数 { Console.Write(arr[i][j]);//输出遍历到的元素 } Console.WriteLine();//换行输出 } Console.ReadLine(); }
补充:C#中如何获取一个二维数组的两维长度,即行数和列数?以及多维数组各个维度的长度?
如何获取二维数组中的元素个数呢?
int[,] array = new int[,] {{1,2,3},{4,5,6},{7,8,9}};//定义一个3行3列的二维数组 int row = array.Rank;//获取维数,这里指行数 int col = array.GetLength(1);//获取指定维度中的元素个数,这里也就是列数了。(0是第一维,1表示的是第二维) int col = array.GetUpperBound(0)+1;//获取指定维度的索引上限,在加上一个1就是总数,这里表示二维数组的行数 int num = array.Length;//获取整个二维数组的长度,即所有元的个数
根据上述我们可以自己验证多维数组的形式,使用循环遍历操作数组,例如下面的四维数组:
int[,,,] arr = new int[9, 8, 7, 6]; arr.Rank;//返回4 arr.GetLength(0);//返回9 arr.GetLength(1);//返回8 arr.GetLength(2);//返回7 arr.GetLength(3);//返回6 arr.GetUpperBound(0)+1;//返回9 arr.Length;//返回3024
剩下的循环遍历数组并操作我就不需要解释了吧,自己根据上面的数子进行操作。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持自由互联。如有错误或未考虑完全的地方,望不吝赐教。