是否需要将 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/