string str = 'my {0} long string {1} need formatting';
我應該做以下,在這種情況下什麼會更快String.Format或String.Replace?
str = string.Format(str, "really", "doesn't");
或創建一個方法,像這樣並呼籲str = str.ReplaceWithValues("really", "doesn't");
public string ReplaceWithValues(this string str, params object[] values) {
string ret = str;
for (int i = 0; i < values.Length; i++) {
ret = str.Replace(string.Concat("{", i, "}"), values.ToString());
}
return ret;
}
好像StringBuilder.AppendFormat()當談到效率不高做這樣簡單的替換,因爲它通過字符串逐個字符。
你需要這樣一個極端的性能調整,或者你只是好奇嗎? – 2010-09-30 17:12:28
@Claudio Redi - 我只是好奇。 – 2010-09-30 17:13:32
「看起來像'StringBuilder。AppendFormat()'在進行這種簡單的替換時效率不高,因爲它通過字符串逐個字符。「你認爲'string.Replace'是什麼? – mquander 2010-09-30 17:21:45