如何移调多维数组?

时间:2013-08-21 22:15:04

标签: c# arrays

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

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();
        }

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

2 个答案:

答案 0 :(得分:17)

只需互相改变你的循环:

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];

答案 1 :(得分:9)

你只需要这样做:

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