2014-06-07 43 views
-3

我没有任何代码,但我想知道我可以做到这一点。如果有问题,我使用Visual Studio 2010 C#。如何打印二维数组以控制台在C#

感谢

杰森

+2

因为它是一个二维的,你将不得不循环二维....即你将需要两个循环 - 一个在另一个。 – Guanxi

+1

[以矩阵格式打印二维数组]可能的副本(http://stackoverflow.com/questions/12826760/printing-2d-array-in-matrix-format) –

+0

仅供参考,这是谷歌针对“C# print 2d array“;) –

回答

7
public static void Print2DArray<T>(T[,] matrix) 
    { 
     for (int i = 0; i < matrix.GetLength(0); i++) 
     { 
      for (int j = 0; j < matrix.GetLength(1); j++) 
      { 
       Console.Write(matrix[i,j] + "\t"); 
      } 
      Console.WriteLine(); 
     } 
    } 
0

做这样的:

static public void Print2DArray(int[][] A) 
{ 
    foreach (int[] row in A) 
    { 
     foreach (int element in row) 
     { 
       Console.Write(element.ToString() + " "); 
     } 
     Console.WriteLine(); 
    } 
} 
+3

int [] []'不是一个二维数组(它是一个”锯齿状数组“)。 'int [,]'是一个二维数组 – elgonzo

0

下面是一个例子...

static void Main() 
{ 
    // A. 2D array of strings. 
    string[,] a = new string[,] 
    { 
     {"ant", "aunt"}, 
     {"Sam", "Samantha"}, 
     {"clozapine", "quetiapine"}, 
     {"flomax", "volmax"}, 
     {"toradol", "tramadol"} 
    }; 

    // B. Get the upper bound to loop. 
    for (int i = 0; i <= a.GetUpperBound(0); i++) 
    { 
     string s1 = a[i, 0]; // ant, Sam, clozapine... 
     string s2 = a[i, 1]; // aunt, Samantha, quetiapine... 
     Console.WriteLine("{0}, {1}", s1, s2); 
    } 

    Console.WriteLine(); 
} 
+0

不是真的打印2d数组... –

2

你应该阅读MSDN:Using foreach with Arrays

int[,] numbers2D = new int[3, 2] { { 9, 99 }, { 3, 33 }, { 5, 55 } }; 
// Or use the short form: 
// int[,] numbers2D = { { 9, 99 }, { 3, 33 }, { 5, 55 } }; 

foreach (int i in numbers2D) 
{ 
    System.Console.Write("{0} ", i); 
} 

//输出:9 99 3 33 5 55

+3

+1。没有意识到可以用单个'foreach'迭代多维数组,也产生几乎无用的输出... –

1

可以打印它全部在一行

int[,] array2D = new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } }; 
Console.WriteLine(String.Join(" ", array2D.Cast<int>())); 

输出

1 2 3 4 5 6 7 8 
0
int[,] matrix = new int[2, 2] { {2, 2}, {1, 1} }; 

for (int i = 0; i < matrix.GetLength(0); i++) 
{ 
    for (int k = 0; k < matrix.GetLength(1); k++) 
    { 
     //put a single value 
     Console.Write(matrix[i,k]); 
    } 
    //next row 
    Console.WriteLine(); 
} 
0
private int[,] MirrorH(int[,] matrix) 
    { 
     int[,] MirrorHorizintal = new int[4, 4]; 
     for (int i = 0; i < 4; i++) 
     { 
      for (int j = 0; j < 4; j ++) 
      { 
       MirrorHorizintal[i, j] = matrix[i, 3 - j]; 
      } 
     } 
     return MirrorHorizintal; 
    } 
0

尝试一下e这..

 int[,] matrix = new int[3, 3] 
     { 
      {1, 2, 3}, 
      {4, 5, 6}, 
      {7, 8, 9}, 
     }; 

     int rowLength = matrix.GetLength(0); 
     int colLength = matrix.GetLength(1); 

     for (int i = 0; i < rowLength; i++) 
     { 
      for (int j = 0; j < colLength; j++) 
      { 
       Console.Write(string.Format("{0} ", matrix[i, j])); 
      } 
      Console.Write(Environment.NewLine + Environment.NewLine); 
     } 


     Console.Read();