c# - StringBuilder.AppendFormat 抛出异常

标签 c# .net-3.5 padding stringbuilder

我的 C# 应用程序中有一个 StringBuilder 实例,其中我希望根据上下文用不同数量的空格填充某些行。我的用法很简单:

StringBuilder MyStringBuilder = new StringBuilder();
MyStringBuilder.AppendFormat("{0:" + this._padding + "}"); // <-- Exception thrown here
MyStringBuilder.AppendLine("My data.");

如果this._padding==10,结果输出应该是这样的:

     My data.

如何在不使用 for 循环的情况下填充字符串?谢谢。

附加信息

异常(exception):“索引(从零开始)必须大于或等于零且小于参数列表的大小。”

最佳答案

  • 您需要在一次调用中同时提供格式和参数。
  • 要向左填充,请使用 {0,10},而不是 {0:10}

试试这个:

MyStringBuilder.AppendFormat("{0," + this._padding + "}", "My Data");

您还可以使用 string.PadLeft 方法。

MyStringBuilder.Append("My Data".PadLeft(this._padding));

关于c# - StringBuilder.AppendFormat 抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8128854/

相关文章:

c# - 在 .NET 中使用 iText7 检查 PDF 中的复选框

web-services - 由 SAP 托管并由 .NET 应用程序使用的 Web 服务

.Net 3.5,在进程之间传递字符串的最安全方式

c# - 将 IList<T> 或 IQueryable<T> 保存到 Excel - C#

c# - 设置填充 - 为什么它说 padding.all 不是可变的?

c# - 未找到 OpenID 终结点

c# - 在使用 Dapper 语句之前声明动态结果

c# - 动态代码生成

css - webkit 浏览器中输入元素的垂直填充无效

html - 相同样式的输入和选择元素上的不同内边距