Это другой способ сделать это, но отлично работает
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");
}