¿Es necesario verificar antes de reemplazar una cadena en StringBuilder (usando funciones como "Contiene" o "IndexOf")?

¿Hay algún método IndexOf o Contiene en C #? A continuación se muestra el código:

var sb = new StringBuilder(mystring);
sb.Replace("abc", "a");
string dateFormatString = sb.ToString();

if (sb.ToString().Contains("def"))
{
    sb.Replace("def", "aa");
}


if (sb.ToString().Contains("ghi"))
{
    sb.Replace("ghi", "assd");
}

Como habrás notado, estoy usando ToString () arriba una y otra vez, lo que quiero evitar ya que está creando una nueva cadena cada vez. ¿Me pueden ayudar cómo puedo evitarlo?

Respuestas a la pregunta(4)

Su respuesta a la pregunta