2010-04-21 4 views
2

이 기능이 있습니다. 비주얼 스튜디오 프로필은 string.Format을 뜨거운 것으로 표시했으며 많은 시간을 보냈습니다.문자열 최적화. 형식 + 바꾸기

어떻게하면이 루프를보다 효율적으로 작성할 수 있습니까?

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(); 
    } 

답변

1

이 메소드가 호출 될 때마다 s2s foreach를 계산하는 대신; 사전 계산 된 값을 저장할 수 있습니다. 물론 나는 IllegalChars와 seperator가 동일하다고 가정하고 있습니다.

+0

그리고 반복자 sz 대신 루프를 다시 작성하려고했습니다. 좋은 아이디어. (나는이 하나에 신선한 눈을 가지고 다행) –

0
  • string.format에서 개체를 넣을 수 있으므로 (Int16) v는 필요하지 않습니다. "v"를 제공 할 수 있습니다
+0

그게 나에게 열거 가치가 아니라 줄 것입니다. - 편집해라. 문자 (문자)가 아니라 숫자 값. –