2

私はこの機能を持っています。Visual Studio のプロファイルでは、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();
    }
4

2 に答える 2

1

このメソッドが呼び出されるたびにs2sforeachvを計算する代わりに; 事前に計算して保存できます。もちろん、IllegalCharsとseperatorは同じままだと思います。

于 2010-04-21T08:41:23.643 に答える
0
  • string.formatにはオブジェクトを入れることができるので、(Int16)vは必要ありません。「v」を指定できます
于 2010-04-21T08:42:00.953 に答える