2016-05-18 27 views
0

我有一塊看起來如下這種模式碼,字符串助洗劑和使用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"); 

那麼這種方法有更好的方法嗎?

+2

[StringBuilder.AppendFormat](https://msdn.microsoft.com/en-us/library/system.text.stringbuilder.appendformat%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396) –

回答

2

其實StringBuilder是據我所知,支持流暢的語法第一BCL類,所以你可以簡單地串聯多個Append/AppendLine/AppendFormat電話:

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

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

​​
+0

或在

+0

@KennethK。是的,但問題具體表明不喜歡不匹配 –

+0

也許,但使用'string.Format'至少清理字符串文字是一個字符串而不是3 +字符串。 –

0

StringBuilder的是做了很多的字符串連接的正確方法。它是專門爲此而設計的,並且從性能的角度來看是最佳的,所以如果你想要很多字符串操作,就使用它。否則,如果它是一個小的操作,你可以按照馬特·羅蘭提醒(如果你有C#6),雖然你不會需要的StringBuilder的,在所有:

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

如果沒有C#6,你可以這樣做:

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