使用 StringBuilder 重复字符串

Repeating a string using StringBuilder

我想重复 .- 40 次并使用 StringBuilder

将其保存到 string

为什么这不起作用?

string result = new StringBuilder("").Append(".-",0,40).ToString();

我知道 other 解决方案,但我想使用 StringBuilder

StringBuilder sb = new StringBuilder();
for (int i = 0; i < 40; i++)
{
     sb.Append(".-");
}
MessageBox.Show(sb.ToString());

该方法与您认为的不同。 2 个 int 参数指定要追加的子字符串的起始索引和长度。

StringBuilder 确实有一个方法可以满足您的需求:它叫做 Insert:

sb.Insert(0, ".-", 40);

如果您想多次重复一个字符串,您的选择是:

1- 使用循环(正如@Balagurunathan 的回答所指出的)

2- 对于单个字符,您可以使用:

string result = new string('a', 10); //aaaaaaaaaa

对于多于一个字符的字符串:

string result = string.Join("", Enumerable.Repeat(".-", 5)) //.-.-.-.-.-

所以我相信你试图做的是沿着这些思路:

string result = new StringBuilder().Append(string.Join("", Enumerable.Repeat(".-", 40))).ToString();

然而,就性能而言,我会坚持使用 for 循环