これはこれを行う別の方法ですが、正常に動作します
StringBuilder sb = new StringBuilder("OldStringOldWay");
int index = sb.ToString().IndexOf("New");
sb.Remove(index, "Old".Length);
sb.Insert(index, "New");
別の方法は、拡張メソッドを使用することです
public static StringBuilder ReplaceOnce
(this StringBuilder sb, string toReplace, string replaceWith)
{
int index = sb.ToString().IndexOf("New");
sb.Remove(index, "Old".Length);
sb.Insert(index, "New");
return sb;
}
そして、次のように ReplaceOnce を呼び出します
static void Main(string[] args)
{
StringBuilder sb = new StringBuilder("OldStringOldWay");
sb.ReplaceOnce("Old", "New");
}