string str = 'my {0} long string {1} need formatting';
Должен ли я делать следующее,
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 () неэффективен, когда речь идет о таких простых заменах, поскольку он проходит символ за символом через строку.