优化string.Format + replace

时间:2010-04-21 08:16:39

标签: optimization stringbuilder string.format

我有这个功能。视觉工作室的配置文件标记了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();
    }

2 个答案:

答案 0 :(得分:1)

每次调用此方法时,不要计算s2s foreach v;你可以预先存储它们。当然我假设IllegalChars和分隔符保持不变。

答案 1 :(得分:0)

  • 在string.format中,您可以放置​​对象,因此不需要(Int16)v。你可以提供“v”