Cadena C # reemplazar con diccionario

Tengo una cadena en la que necesito hacer algunos reemplazos. tengo unDictionary<string, string> donde tengo búsqueda-reemplazar pares definidos. He creado los siguientes métodos de extensión para realizar esta operación:

public static string Replace(this string str, Dictionary<string, string> dict)
{
    StringBuilder sb = new StringBuilder(str);

    return sb.Replace(dict).ToString();
}

public static StringBuild Replace(this StringBuilder sb, 
    Dictionary<string, string> dict)
{
    foreach (KeyValuePair<string, string> replacement in dict)
    {
        sb.Replace(replacement.Key, replacement.Value);
    }

    return sb;
}

¿Hay una mejor manera de hacerlo?

Respuestas a la pregunta(6)

Su respuesta a la pregunta