我的 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/