是否需要初始化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还是我要过火(做同样的工作两次)并且它很好,就像我有它一样?