【问题标题】:How do I get a two dimensional array to align in C#? [duplicate]如何让二维数组在 C# 中对齐? [复制]
【发布时间】:2019-11-05 19:48:36
【问题描述】:

我正在尝试在 C# 中打印一个二维数组。我已成功正确打印列和行,但我无法弄清楚如何让它们正确对齐,所以它是一个正方形。有什么方法可以格式化它,使它看起来像一个合适的正方形? (如形状)

我的代码是

           int[,] array1 = new int[6, 6]
           {
               {10, 20, 10, 20, 21, 99 },
               {2, 27, 5, 45, 20, 13 },
               {17, 20, 20, 33, 33, 20 },
               {21, 35, 15, 54, 20, 37 },
               {31, 101, 25, 55, 26, 66 },
               {45, 20, 44, 12, 55, 98 }
           };`

           int Length = array1.GetLength(0);
           int Height = array1.GetLength(1);

           for (int i = 0; i < Length; i++)
           {
               for (int j = 0; j < Height; j++)
               {
                   Console.Write(string.Format("{0} ", array1[i, j]));
               }
               Console.Write("\n" + "\n");
           }




【问题讨论】:

  • 你只是想left-pad the single-digit numbers加一个空格吗?
  • Console.Write(string.Format("{0,3} ", array1[i, j])); 其中3 表示从左侧填充到长度3
  • 感谢您回答我的问题。
  • 只是对@DmitryBychenko 示例的澄清。如果您使用3,它将在left 上填充。如果您需要它在 right 上填充,请使用 -3: Console.Write(string.Format("{0,-3}", array1[i, j])); 或使用插值字符串:Console.Write($"{array1[i, j],-3}");

标签: c# arrays loops


【解决方案1】:

您可以在输出中添加 TAB 字符:

Console.Write(array1[i, j].ToString() + '\t');

或填充数字:

Console.Write(string.Format("{0,3} ", array1[i, j]));

其中 3 是您的值的最大位数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-30
    • 2011-08-02
    • 1970-01-01
    相关资源
    最近更新 更多