C# 字符串生成器和字符串Concat

C# 字符串生成器和字符串Concat,c#,stringbuilder,C#,Stringbuilder,我有一段代码,看起来遵循这个模式 var stringBuilder =new StringBuilder( string.Concat(" string", _variable, "another string" , _variable2 ... ); 根据某种逻辑,你应该做什么 stringBuilder.Append(" Some more strings"); 我不喜欢使用StringBuilder和string.Concat的不匹配,我想要一种更优雅的方式 我所想的是使用St

我有一段代码,看起来遵循这个模式

 var stringBuilder =new StringBuilder( string.Concat(" string", _variable, 
"another string" , _variable2 ... );
根据某种逻辑,你应该做什么

stringBuilder.Append(" Some more strings"); 
我不喜欢使用StringBuilder和string.Concat的不匹配,我想要一种更优雅的方式

我所想的是使用StringBuilder。像这样附加

StringBuilder.Append("string");
StringBuilder.Append(_variable);
StringBuilder.Append("another string");
有比这种方法更好的方法吗?

在C#6中,可以使用字符串插值:

var stringbuilder = new StringBuilder($"string{_variable}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是执行大量字符串连接的正确方法。它是专门为此而设计的,并且从性能角度来看是最佳的,所以如果您需要大量的字符串操作,请使用它。否则,如果是一个小操作,您可以按照Matt Rowland的建议(如果您有C#6),尽管您根本不需要StringBuilder:

string result = $"string {_variable} another string"
如果你没有C#6,你可以:

string result = string.Format("string {0} another string", _variable)

实际上,
StringBuilder
是第一个支持流畅语法的BCL类,因此您可以简单地链接多个
Append
/
AppendLine
/
AppendFormat
调用:

var stringBuilder = new StringBuilder()
    .Append(" string").Append(_variable)
    .Append("another string").Append(_variable2)
    .Append(...);

实际上,
StringBuilder
是第一个支持流畅语法的BCL类,因此您可以简单地链接多个
Append
/
AppendLine
/
AppendFormat
调用:

var stringBuilder = new StringBuilder()
    .Append(" string").Append(_variable)
    .Append("another string").Append(_variable2)
    .Append(...);

或者在string.Format至少可以将字符串文本清除为一个字符串而不是3个以上的字符串。或者在string.Format至少可以将字符串文本清除为一个字符串,而不是3个以上的字符串。