我有一個stringbuilder,我操縱了好幾次,我需要用不同長度的字符串替換它內部的字符串。StringBuilder ReplaceAt功能
sb = new StringBuilder("This has {Count} Values. Your search was '{SearchText}'. Did you mean '{DidYouMean}'?")
//get the replacement areas, this would search for the field names within {}
MatchCollection matches = GetReplacementAreas(sb);
int indexOffset=0;
foreach(Match m in matches)
{
//fields is a dictionary containing keys that match the fields
sb.ReplaceAt(m.Index,m.Length,fields[m.Value]);
}
很明顯ReplaceAt不存在。我即將自己寫。其他人已經這樣做了嗎?
不太確定爲什麼你不會只使用[String.Format](http://msdn.microsoft.com/en-us/library/system.string.format.aspx)或[StringBuilder。 AppendFormat](http://msdn.microsoft.com/zh-cn/library/system.text.stringbuilder.appendformat.aspx)現有功能? – 2012-08-06 15:35:19
我接受它你不能只是使用標準的'替換'方法,一旦你有比賽告訴你你要更換什麼? – Chris 2012-08-06 15:43:05
@MikeGuthrie:我認爲這個想法是,大括號內的內容可以是任何東西,並且它與數據對象匹配並動態執行這些子概念。即在編譯時你不知道字符串中會出現什麼,所以你不能將正確的值作爲參數傳遞給'String.Format'或類似的東西。 – Chris 2012-08-06 15:44:35