c# 如何實現獲取二維數組的列數

二維數組的行數可以使用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

剩下的循環遍歷數組並操作我就不需要解釋瞭吧,自己根據上面的數子進行操作。

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。

推薦閱讀:

    None Found