如何正确格式化字符串?

C_s*_*arp 2 c# stringbuilder string-formatting

我有一条消息,我打印出实体名称及其计数.我用过StringBuilder课.我有这样的代码:

   message.AppendFormat("Items1:    {0}",item1count).AppendLine();
   message.AppendFormat("Items2Byb:    {0}",item2count).AppendLine();
   message.AppendFormat("Items3STCDEE:    {0}",item3count).AppendLine();
   message.AppendFormat("Items4HTECEEGG:    {0}",item4count).AppendLine();
   message.AppendFormat("ItemsASSTEC:    {0}",item5count).AppendLine();
Run Code Online (Sandbox Code Playgroud)

结果如下:

  Items1:         1
  Items2Byb:         3
  Items3STCDEE           5
Run Code Online (Sandbox Code Playgroud)

我想要的是正确对齐,无论项目名称的长度是多少:

      Items1:            1
      Items2Byb:         3
      Items3STCDEE       5
Run Code Online (Sandbox Code Playgroud)

mer*_*011 6

这是一种不使用的方法PadRight,假设左边标签的最大长度是20.当然,你应该调整数量1 + max.

using System;
using System.IO;
using System.Text;

public class P{
    public static void Main(string[] args) {
        StringBuilder message = new StringBuilder();
        message.AppendFormat("{0,-20}{1}","Items1:",1).AppendLine();
        message.AppendFormat("{0,-20}{1}","Items2Byb:",2).AppendLine();
        message.AppendFormat("{0,-20}{1}","Items3STCDEE:", 3).AppendLine();
        message.AppendFormat("{0,-20}{1}","Items4HTECEEGG:",4).AppendLine();
        message.AppendFormat("{0,-20}{1}","ItemsASSTEC:",5).AppendLine();
        Console.WriteLine(message.ToString());
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

Items1:             1
Items2Byb:          2
Items3STCDEE:       3
Items4HTECEEGG:     4
ItemsASSTEC:        5
Run Code Online (Sandbox Code Playgroud)