我想重複.-
40倍,並將其保存到一個string
使用StringBuilder
重複使用StringBuilder的
爲什麼這個不行的字符串?
string result = new StringBuilder("").Append(".-",0,40).ToString();
我知道other解決方案,但我想用StringBuilder
我想重複.-
40倍,並將其保存到一個string
使用StringBuilder
重複使用StringBuilder的
爲什麼這個不行的字符串?
string result = new StringBuilder("").Append(".-",0,40).ToString();
我知道other解決方案,但我想用StringBuilder
這種方法沒有做什麼,你認爲它。 2個int參數指定要追加的子串的起始索引和長度。
StringBuilder
確實有你想要的東西的方法:這就是所謂的Insert
:
sb.Insert(0, ".-", 40);
是的,這是長度。像這樣的方法令人困惑。在一些方法中,第二個int表示結束索引,在其他方法中它表示長度。編輯。 –
大多數C#庫的開始和結束時間都與Java的開始和結束一致。在這種情況下,它更糟,因爲他們命名了最後一個參數'count'。 – juharr
@juharr'Parallel.ForEach'例如使用開始和結束......我想我更喜歡那個。 「從20到50的所有數字」對我來說比「從20開始的30個數字」 –
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 40; i++)
{
sb.Append(".-");
}
MessageBox.Show(sb.ToString());
轉儲代碼很少用於OP和未來的讀者,我也解釋了他爲什麼不用一個空字符串初始化StringBuilder,爲什麼他用Append()的解決方案是錯誤的,爲什麼他可能希望將初始容量設置爲80以及這是如何與插入()不同... –
如果你想重複一個字符串,你的選擇是幾次:
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();
但是我會堅持到爲循環在性能方面
使用循環並添加40倍相同的常數 – Steve
這不是'Append'的工作方式。你告訴它附加一個子字符串不要重複該字符串。具體來說,最後一個參數實際上是子字符串的長度。他們給了它'count'的不幸的名字。 – juharr