C# - 如何使用制表符正确缩进字符串数据?

时间:2016-03-20 03:27:05

标签: c# .net string console-application string-formatting

在我的C#Console程序中,我有4个变量。他们的名字和类型如下:

int ID
bool Status
bool Available
int Count

我希望能够将它们打印到控制台,很好地缩进如下:

Indented (Required)

但是,当我使用标签“\ t”时,为了格式化我的字符串,它没有考虑文本宽度,并且所有值都按任意方式缩进,如下所示:

Wayward (Actual result)

我该如何解决这个问题?我不想使用任何第三方库,只需使用.NET功能,如String.Format()。

2 个答案:

答案 0 :(得分:2)

您可以使用以下空格填充它们:

Console.WriteLine("{0,-10}\t{1,-5}\t{2,-5}\t{3,-10}", ID, Status, Available, Count);

如果你想改为对齐它们:

Console.WriteLine("{0,10}\t{1,5}\t{2,5}\t{3,10}", ID, Status, Available, Count);

我将填充设置为以字符串形式表示的整数或布尔值的最长可能长度。您可能需要对其进行调整以考虑列标题。

答案 1 :(得分:1)

尝试填充

 var data = new string[5,4]
            {
                 { "ID", "Status", "Available", "Count" },
                { "------", "------", "------", "------" },
                { "1123", "True", "False", "-1" },
                { "23", "False", "True", "-23" },
                { "3", "True", "True", "-1" }

            };
            for (int i = 0; i < data.GetLength(0); i++)
            {
                Console.WriteLine("{0,-10}\t{1,-10}\t{2,-10}\t{3,-10}", data[i, 0], data[i, 1], data[i, 2], data[i, 3]);

            }