c# - 使用前设置 StringBuilder?

标签 c#

是否需要将 StringBuilder 变量初始化为 string.empty 以防万一您最后没有附加任何内容并需要返回一些内容?

    public static string ToSemiColonList<T>(this IEnumerable<T> list, Func<T, string> func)
    {
        StringBuilder sb = new StringBuilder();

        foreach (T item in list)
        {
            if (sb.Length > 0)
                sb.Append(";");

            string elem = func(item);
            sb.Append(elem);
        }

        return sb.ToString();
    }

在这种情况下它可能永远不会进入foreach。所以我的猜测是因为方法作用域中的每个局部变量在 C# 中都设置为无值,将其设置为空字符串,因为如果未命中此 foreach,我们需要返回一些东西。

也许最好先检查 stringbuilder 的长度,然后如果为零,则返回 string.empty,否则我是不是做得太过分了(做同样的工作两次),这很好,就像我拥有它一样?

最佳答案

StringBuilder 对象的默认初始化设置为 string.Empty

默认容量为 16 - 请参阅 here关于 SO 的类似(但不同)问题。

关于c# - 使用前设置 StringBuilder?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3137773/

相关文章:

c# - EF Core - EntityTypeBuilder 一对多关系?

c# - 如何将 Unity 支持添加到 NuGet 包?

c# - 数据类型货币 C#

c# - 在变量中存储 Lambda 表达式

c# - 解决交互组合爆炸的最佳方法是什么?

c# - 在模块化表单应用程序中使用 AppDomain.UnhandledException

c# - 当 SignalR 一次建立 8-10 个连接时,实时聊天不起作用

c# - SignalR 帮助将 List<string> 传递给客户端

c# - 连接 C# 和 Oracle 数据库

c# - 什么是NullReferenceException,如何解决?