2010-04-21 9 views
2

J'ai cette fonction. Le profil visuel de studio a marqué la ligne avec la chaîne. Formate comme chaud et étais je passe beaucoup de mon temps.optimiser une chaîne.Format + remplacer

Comment puis-je écrire cette boucle plus efficacement?

public string EscapeNoPredicate(string sz) 
    { 
     var s = new StringBuilder(sz); 

     s.Replace(sepStr, sepStr + sepStr); 
     foreach (char v in IllegalChars) 
     { 
      string s2 = string.Format("{0}{1:X2}", seperator, (Int16)v); 
      s.Replace(v.ToString(), s2); 
     } 
     return s.ToString(); 
    } 

Répondre

1

Au lieu de calculer s2s foreach v chaque fois que cette méthode est appelée; vous pouvez les stocker précalculés. Bien sûr, je suppose que IllegalChars et Seperator reste le même.

+0

et j'allais réécrire la boucle à l'iterator sz à la place. bonne idée. (Je suis heureux d'avoir des yeux frais sur celui-ci) –

0
  • Dans une chaîne.format vous pouvez placer des objets, donc (Int16) v n'est pas nécessaire. Vous pouvez fournir "v"
+0

Cela me donnerait le nom et non la valeur enum. -edit-scratch ça. le caractère (lettre) et non la valeur numérique. –