【发布时间】:2014-07-28 02:01:27
【问题描述】:
我一直在创建动态字符串以附加到 StringBuilder,如下所示:
StringBuilder sb = new StringBuilder();
string bla = "bla";
sb.AppendLine(string.Format("android:id=\"@+id/{0}\" ", bla));
...但后来我注意到 StringBuilder 有一个 AppendFormat() 方法,它消除了“string.Format()”。所以我想知道 AppendFormat() 是否也像 AppendLine() 那样添加换行符(而不是 Append(),后者没有)。
IOW,达到同样的效果:
sb.AppendLine(string.Format("android:id=\"@+id/{0}\" ", bla));
...当使用 AppendFormat() 时,我需要使用两行,如下所示:
sb.AppendFormat("android:id=\"@+id/{0}\" ", bla);
sb.AppendLine();
?
答案是肯定的 - 需要两行,或者我必须在 AppendLine() 调用中恢复为显式使用 string.Format()。
实际上,至少有一种方法可以在一行中使用 AppendFormat() 来完成,也就是说:
sb.AppendFormat("android:id=\"@+id/{0}\" {1}", bla, Environment.NewLine);
...但这可以说不比 AppendLine(string.Format(...
那么以下哪一项更好(性能更高)或更安全,或者无关紧要?
sb.AppendFormat("android:id=\"@+id/{0}\" {1}", bla, Environment.NewLine);
sb.AppendLine(string.Format("android:id=\"@+id/{0}\" ", bla));
【问题讨论】:
标签: c# performance append stringbuilder string.format