用 StringBuilder 的同时
又用加String结束来结束。
这样做的原因主要是让代码看起来短点,囧。。。
例如:
public String ReturnStr(IList<Model> list)
{
StringBuilder sb = new StringBuilder();
sb.Append("[");
foreach (var model in list)
{
sb.Append(model.Name);
}
return sb + "]";
}
我的疑惑是,最后的 sb + "]" 和 ToString()
比起来,谁更划算呢?
------解决方案--------------------------------------------------------
return sb + "]"是运算符+重载,会调用string.Concat(object,object);
个人感觉:sb.Append("]");return sb.ToString();在sb里东西比较多的情况下,可能效率稍高些。
------解决方案--------------------------------------------------------
如果你多看点深度的.net framework代码,也许会有新的发现:
[__DynamicallyInvokable]
public static string Concat(params object[] args)
{
if (args == null)
{
throw new ArgumentNullException("args");
}
string[] values = new string[args.Length];
int totalLength = 0;
for (int i = 0; i < args.Length; i++)
{
object obj2 = args[i];
values[i] = (obj2 == null) ? Empty : obj2.ToString();
if (values[i] == null)
{
values[i] = Empty;
}
totalLength += values[i].Length;
if (totalLength < 0)
{
throw new OutOfMemoryException();
}
}
return ConcatArray(values, totalLength);
}
你觉得运行这个“劳什子”的代码,跟一个简单得 ToString() 相比,哪一个更有意义?
许多时候,“太专业”是一个贬义词!
------解决方案--------------------------------------------------------