c# - 使用 string.concat 还是 string builder 更好?

标签 c# string

使用 string.concat 还是 string builder 更好?谁能解释一下我应该在什么情况下使用这两者?

有个问题here ,这解释了性能,我想了解在哪里使用 string.concat 以及在哪里避免它?

提前致谢。

最佳答案

正如您从引用源中看到的那样

http://referencesource.microsoft.com/#mscorlib/system/string.cs,206408f6325aea24

    [ComVisible(false)]
    public static String Concat(IEnumerable<String> values) {
        if (values == null)
            throw new ArgumentNullException("values");
        Contract.Ensures(Contract.Result<String>() != null);
        Contract.EndContractBlock();

        StringBuilder result = StringBuilderCache.Acquire();
        using(IEnumerator<String> en = values.GetEnumerator()) {
            while (en.MoveNext()) {
                if (en.Current != null) {
                    result.Append(en.Current);
                }
            }            
        }
        return StringBuilderCache.GetStringAndRelease(result);            
    }

String.Concat 使用 StringBuilder 这就是为什么这两种方法大体上相同的原因。

关于c# - 使用 string.concat 还是 string builder 更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39446933/

相关文章:

ios - 对于 NSDate 变量来说,字符串插值是不好的做法吗?

java - 删除字符串中最后一个已知单词

c# - 确定 WPF 是否可以加载图像文件的最佳方法是什么?

c# - 监视多个可变数量的进程的启动和退出

c# - 如何访问附加到派生类的值?

java - 字符串连接在字符串池中是如何工作的?

c# - 检查字符串是否为 `moSTLy` 大写的快速方法

python - 使用 Python 正则表达式在字符之间拆分字符串

c# - 可以使用C# codeDOM回调预编译函数吗?

c# - 具有多个特定扩展名的 GetFiles c#