使用String.Format动态提供所需的最大填充量

时间:2015-01-08 16:18:30

标签: c# string.format

您好我正在尝试使我的控制台应用程序分配更加美观,通过这样做,我决定将String.Format实现到我的循环中。我们还没有被教过,但很容易上手。这里的主要问题是如何将一个int解析为String.Format,以便它提供所需的最大空间。

这是循环:

for (int index = 0; index < files.Length; index++)
{
    int maxNumericalSize = 2;
    int fileNumberSystem = index + 1;
    string result = string.Format("{0,maxNumericalSize}: {1,20} - {2,10} - {3}", fileNumberSystem, files[index].Name, files[index].Length, files[index].LastWriteTime );
    /* Console.WriteLine(fileNumberSystem + ". " + files[index].Name + " - " + files[index].Length + " - " + files[index].LastWriteTime); */
    Console.WriteLine(result);
}

正如你所看到的,MaxNumericalSize显然抛出了一个区域,因为它在语音标记内,所以我现在想知道如何将其解析为String.Format,就像没有错误一样。

1 个答案:

答案 0 :(得分:1)

尝试使用string.PadLeft / string.PadRight添加其他空格,如下所示

string.Format("{0}: {1,20} ..", fileNumberSystem.ToString().PadRight(maxNumericalSize), ...);

对于PadRight,它的工作原理如下

  

返回一个新字符串,该字符串左对齐此字符串中的字符   用右边的空格填充它们,达到指定的总长度。

甚至有一个超载让你选择一个角色来填补空间。您可以在MSDN上找到更多信息。