c# 如何实现获取二维数组的列数

来自:网络
时间:2021-07-15
阅读:

二维数组的行数可以使用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

剩下的循环遍历数组并操作我就不需要解释了吧,自己根据上面的数子进行操作。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。

返回顶部
顶部