字符串构建器和字符串Concat

时间:2016-05-18 16:54:26

标签: c# stringbuilder

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

 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");

这种方法有更好的方法吗?

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

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

var stringbuilder = new StringBuilder($"string{_variable}another string");

答案 2 :(得分:0)

StringBuilder是进行大量字符串连接的正确方法。它是专门为此而制作的,从性能的角度来看是最佳的,所以如果你想要大量的字符串操作,请使用它。否则,如果它是一个小操作,你可以跟随Matt Rowland建议(如果你有C#6),尽管你根本不需要StringBuilder:

string result = $"string {_variable} another string"

如果你没有C#6,你可以这样做:

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