在C#中生成\\t
字符串的最佳方法是什麼 數組
我正在學習C#,並嘗試用不一樣的方式說同一件事。 函數
Tabs(uint t)
是一個函數,該函數返回t
等於\\t
的string
學習
例如Tabs(3)
返回"\\t\\t\\t"
ui
這三種實現Tabs(uint numTabs)
方式中哪種最好? this
固然,這取決於「最佳」的含義。 spa
LINQ版本只有兩行,這很好。 可是,重複和聚合的調用是否沒必要要地浪費時間/資源? .net
StringBuilder
版本很是清晰,但StringBuilder
類的速度是否稍慢? code
string
版本是基本的,這意味着易於理解。 資源
不要緊嗎? 他們都平等嗎? 字符串
這些都是能夠幫助我更好地理解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; }
string.Concat(Enumerable.Repeat("ab", 2));
退貨
「阿巴布」
和
string.Concat(Enumerable.Repeat("a", 2));
退貨
「 aa」
從...
使用String.Concat
和Enumerable.Repeat
將比使用String.Join
public static Repeat(this String pattern, int count) { return String.Concat(Enumerable.Repeat(pattern, count)); }
假設您要重複n次,能夠使用;
String.Empty.PadRight(n,'\t')
var str = new string(Enumerable.Repeat('\t', numTabs).ToArray());
我知道這個問題已經有5年了,可是有一種簡單的方法能夠重複在.Net 2.0中使用的字符串。
要重複一個字符串:
string repeated = new String('+', 3).Replace("+", "Hello, ");
退貨
「你好你好你好, 」
要將字符串重複做爲數組:
// Two line version. string repeated = new String('+', 3).Replace("+", "Hello,"); string[] repeatedArray = repeated.Split(','); // One line version. string[] repeatedArray = new String('+', 3).Replace("+", "Hello,").Split(',');
退貨
{「你好你好你好」, 」」}
把事情簡單化。