用于N次迭代的字符串连接方法是什么?

ale*_*exn 3 c# string-concatenation

如果我想连接一个字符串N次,我更喜欢哪种方法?

以此代码为例:

public static string Repeat(this string instance, int times)
{
        var result = string.Empty;

        for (int i = 0; i < times; i++)
            result += instance;

        return result;
}
Run Code Online (Sandbox Code Playgroud)

可以在"times"设置为5或5000的情况下调用此方法.我应该使用哪种方法?

的string.join?StringBuilder的?只是标准的string.Concat?

类似的功能将在商业图书馆中实施,所以我真的需要"最佳"的方式来做到这一点.

Mar*_*ell 8

    public static string Repeat(this string instance, int times)
    {
        if (times == 1 || string.IsNullOrEmpty(instance)) return instance;
        if (times == 0) return "";
        if (times < 0) throw new ArgumentOutOfRangeException("times");
        StringBuilder sb = new StringBuilder(instance.Length * times);
        for (int i = 0; i < times; i++)
            sb.Append(instance);
        return sb.ToString();
    }
Run Code Online (Sandbox Code Playgroud)


Jan*_*rgs 5

Stringbuilder ofcourse.它适用于快速字符串连接操作,因为每次要加入字符串时都不会创建新对象.

详情请见此处.