C#是否可以在打印时将数组缩进几行

时间:2017-12-04 15:55:42

标签: c# arrays

在基于文字的游戏中,我正在制作菜单,例如库存和玩家统计数据,如下所示:

    | |====================================| |
    | |                                    | |
    | |                                    | |
    | |====================================| |

我想知道是否有可能让它成为一个阵列,在这种情况下,库存可以在这个盒子里打印而不重叠。

基本上,我想要做的就是缩进数组的打印,使其适合这个盒子而不会出现任何问题。

    Console.WriteLine("| | Your inventory contains:                                      | |");
        for (Arraycount = 0; Arraycount < 20; Arraycount++)
        {
            int inventory_position = Arraycount + 1;
            Console.WriteLine("{0}", Inventory[Arraycount]);
        }

1 个答案:

答案 0 :(得分:2)

您可以使用具有指定宽度和左对齐的格式字符串:

var items1 = new string[]
{
    "Item 1",
    "Hello World",
    "Here comes trouble aaaaaaaaaaaaaaaaa bbbbbbbbbbbbbb cccccccccccccc dddddddd"
};
Console.WriteLine("| | {0,-60} | |", "Your inventory contains:");
for (int i = 0; i < items1.Length; i++)
{
    Console.WriteLine("| | {0,-60} | |", items1[i]);
}

"{0,-60}"占位符告诉格式化第一个参数(0),其最小宽度为60,左对齐(- 60之前)。

万一你可能厌倦了计算正确数量的边框字符:你可以使用Console.WriteLine("| |{0}| |", new string('=', 62));作为上边框和下边框,与宽度为60(+2格)的内容很好地对齐。