\t在C#中生成字符串s 的最佳方法是什么我正在學(xué)習(xí)C#,并嘗試用不同的方式說同一件事。Tabs(uint t)是返回的功能string與t的量\t的例如Tabs(3)回報"\t\t\t"這三種實施方式中哪Tabs(uint numTabs)一種最佳?當(dāng)然,這取決于“最佳”的含義。LINQ版本只有兩行,這很好。但是,重復(fù)和聚合的調(diào)用是否不必要地浪費時間/資源?該StringBuilder版本是很清楚的,但是是StringBuilder類莫名其妙慢?該string版本是基本版本,這意味著它易于理解。沒關(guān)系嗎?他們都平等嗎?這些都是可以幫助我更好地理解C#的問題。private string Tabs(uint numTabs){ IEnumerable<string> tabs = Enumerable.Repeat("\t", (int) numTabs); return (numTabs > 0) ? tabs.Aggregate((sum, next) => sum + next) : ""; } private string Tabs(uint numTabs){ StringBuilder sb = new StringBuilder(); for (uint i = 0; i < numTabs; i++) sb.Append("\t"); return sb.ToString();} private string Tabs(uint numTabs){ string output = ""; for (uint i = 0; i < numTabs; i++) { output += '\t'; } return output; }
3 回答

幕布斯6054654
TA貢獻1876條經(jīng)驗 獲得超7個贊
那這個呢:
string tabs = new String('\t', n);
哪里n是您要重復(fù)字符串的次數(shù)。
或更好:
static string Tabs(int n)
{
return new String('\t', n);
}

繁星淼淼
TA貢獻1775條經(jīng)驗 獲得超11個贊
string.Concat(Enumerable.Repeat("ab", 2));
退貨
“阿巴布”
和
string.Concat(Enumerable.Repeat("a", 2));
退貨
“ aa”
從...

慕的地6264312
TA貢獻1817條經(jīng)驗 獲得超6個贊
在.NET的所有版本中,您可以這樣重復(fù)一個字符串:
public static string Repeat(string value, int count)
{
return new StringBuilder(value.Length * count).Insert(0, value, count).ToString();
}
重覆角色new String('\t', count)是您的最佳選擇。
- 3 回答
- 0 關(guān)注
- 1283 瀏覽
添加回答
舉報
0/150
提交
取消