如何移调多维数组?

我认为这可能是一个非常简单的问题,但我还没有弄清楚。 如果我有一个像这样的二维数组:

int[,] matris = new int[5, 8] { { 1, 2, 3, 4, 5,6,7,8 }, {9,10,11,12,13,14,15,16}, { 17,18,19,20,21,22,23,24 }, { 25,26,27,28,29,30,31,32 }, { 33,34,35,36,37,38,39,40 }, }; 

和一个for循环,像这样:

  for (int r = 0; r < 5; r++) { for (int j = 0; j < 8; j++) Console.Write("{0} ", matris[r, j]); Console.WriteLine(); } 

所以使用这段代码我打印出多维数组。 但是如何打印出arrays的转置?

只需改变你的循环:

 for (int j = 0; j < 8; j++) { for (int r = 0; r < 5; r++) Console.Write("{0} ", matris[r, j]); Console.WriteLine(); } 

创建新数组:

 var newArray = new int[8, 5]; for (int j = 0; j < 8; j++) for (int r = 0; r < 5; r++) newArray[j, r] = matris[r, j]; 

你只需要这样做:

 for (int r = 0; r < 8; r++) { for (int j = 0; j < 5; j++) Console.Write("{0} ", matris[j, r]); Console.WriteLine(); }