C# 是否可以在C控制台中设置选项卡大小

C# 是否可以在C控制台中设置选项卡大小,c#,console,C#,Console,有没有一种很好的方法来更改控制台中的选项卡大小 通常它是8个字符长,但如果我可以设置为4个字符就好了 在下面的程序中,我想列出数组的所有项及其索引。我使用选项卡对齐文本,但索引和文本之间的空间太大 for (int i = 0; i < myArray.length; i++) { Console.WriteLine(i + ":\t" + myArray[i]); } 无法更改windows cmd选项卡的大小。根据标准,它在水平方向上每8个字符的倍数进行标准化 但是您可以使用

有没有一种很好的方法来更改控制台中的选项卡大小

通常它是8个字符长,但如果我可以设置为4个字符就好了

在下面的程序中,我想列出数组的所有项及其索引。我使用选项卡对齐文本,但索引和文本之间的空间太大

for (int i = 0; i < myArray.length; i++)
{
    Console.WriteLine(i + ":\t" + myArray[i]);
}

无法更改windows cmd选项卡的大小。根据标准,它在水平方向上每8个字符的倍数进行标准化

但是您可以使用格式。您的代码如下所示:

for (int i = 0; i < myArray.Length; i++)
    Console.WriteLine($"{i,-4}{myArray[i]}");
1:  test string
20: test string
300:test string
4000:test string
50000:test string
使用tab仍然会给您这样的空间:

1:  test string
20: test string
300:test string
4000:   test string
50000:  test string
如果要复制此行为,必须使用i:string的长度并获得下一个4的倍数,如下所示:

for (int i = 0; i < myArray.Length; i++)
    Console.WriteLine("{0}{1}", $"{i}:".PadRight($"{i}:".Length + (4 - $"{i}:".Length % 4)), myArray[i]);

哎呀,没那么好…

无法更改windows cmd选项卡的大小。根据标准,它在水平方向上每8个字符的倍数进行标准化

但是您可以使用格式。您的代码如下所示:

for (int i = 0; i < myArray.Length; i++)
    Console.WriteLine($"{i,-4}{myArray[i]}");
1:  test string
20: test string
300:test string
4000:test string
50000:test string
使用tab仍然会给您这样的空间:

1:  test string
20: test string
300:test string
4000:   test string
50000:  test string
如果要复制此行为,必须使用i:string的长度并获得下一个4的倍数,如下所示:

for (int i = 0; i < myArray.Length; i++)
    Console.WriteLine("{0}{1}", $"{i}:".PadRight($"{i}:".Length + (4 - $"{i}:".Length % 4)), myArray[i]);

哎呀,没那么好…

为什么不只用4个空格呢?因为,当我有10个例子时:我只需要一个空格而不是两个。我也可以插入一个ifi>=10,但我希望有更好的方法。为什么不只用4个空格呢?因为,当我有例如10时:我只需要一个空格而不是两个。我也可以插入ifi>=10,但我希望有更好的方法。没有必要像那样手动填充字符串。只需使用正确的格式说明符:Console.WriteLine${i,-4}:{myArray[i]}@ChrisDunaway您知道一种使用格式说明符来完成我的解决方案的最后一部分的方法吗?它将填充到4的下一个倍数?不需要像这样手动填充字符串。只需使用正确的格式说明符:Console.WriteLine${i,-4}:{myArray[i]}@ChrisDunaway您知道一种使用格式说明符来完成我的解决方案的最后一部分的方法吗?它将填充到4的下一个倍数?