字符串生成器和字符串连接
String builder and String Concat
我有一段代码看起来遵循这种模式,
var stringBuilder =new StringBuilder( string.Concat(" string", _variable,
"another string" , _variable2 ... );
根据一些逻辑做
stringBuilder.Append(" Some more strings");
我不喜欢使用 StringBuilder 和 string.Concat 的不匹配,我想要一种更优雅的方式
我以为是这样用StringBuilder.Append,
StringBuilder.Append("string");
StringBuilder.Append(_variable);
StringBuilder.Append("another string");
有比这种方法更好的方法吗?
在 C# 6 中,您可以使用字符串插值:
var stringbuilder = new StringBuilder($"string{_variable}another string");
StringBuilder 是进行大量字符串连接的正确方法。它是专门为此而设计的,从性能的角度来看是最佳的,所以如果你想要大量的字符串操作,请使用它。否则,如果这是一个小操作,您可以遵循 Matt Rowland 的建议(如果您有 C# 6),尽管您根本不需要 StringBuilder:
string result = $"string {_variable} another string"
如果你没有 C# 6,你可以这样做:
string result = string.Format("string {0} another string", _variable)
实际上 StringBuilder
是 AFAIK 第一个支持流畅语法的 BCL class,因此您可以简单地链接多个 Append
/ AppendLine
/ AppendFormat
来电:
var stringBuilder = new StringBuilder()
.Append(" string").Append(_variable)
.Append("another string").Append(_variable2)
.Append(...);
我有一段代码看起来遵循这种模式,
var stringBuilder =new StringBuilder( string.Concat(" string", _variable,
"another string" , _variable2 ... );
根据一些逻辑做
stringBuilder.Append(" Some more strings");
我不喜欢使用 StringBuilder 和 string.Concat 的不匹配,我想要一种更优雅的方式
我以为是这样用StringBuilder.Append,
StringBuilder.Append("string");
StringBuilder.Append(_variable);
StringBuilder.Append("another string");
有比这种方法更好的方法吗?
在 C# 6 中,您可以使用字符串插值:
var stringbuilder = new StringBuilder($"string{_variable}another string");
StringBuilder 是进行大量字符串连接的正确方法。它是专门为此而设计的,从性能的角度来看是最佳的,所以如果你想要大量的字符串操作,请使用它。否则,如果这是一个小操作,您可以遵循 Matt Rowland 的建议(如果您有 C# 6),尽管您根本不需要 StringBuilder:
string result = $"string {_variable} another string"
如果你没有 C# 6,你可以这样做:
string result = string.Format("string {0} another string", _variable)
实际上 StringBuilder
是 AFAIK 第一个支持流畅语法的 BCL class,因此您可以简单地链接多个 Append
/ AppendLine
/ AppendFormat
来电:
var stringBuilder = new StringBuilder()
.Append(" string").Append(_variable)
.Append("another string").Append(_variable2)
.Append(...);