2014-12-07 85 views
1
StreamWriter myfile = new StreamWriter(@"d:/into.txt"); 

string MyStringFile = @" 
    | Domain: domainName12 
    | UserName: paswordchange 
    | PassWord: abc12"; 

Dictionary<string, string> myv = new Dictionary<string, string>(); 

myv.Add("abc12", "thi user"); 
myv.Add("paswordchange", "wer2345"); 
myv.Add("domainName12", "www.abc.com"); 

string MyStringFileNew = ""; 

foreach (KeyValuePair<string, string> pair in myv) 
{ 
    MyStringFileNew = MyStringFile.Replace(pair.Key.ToString(), pair.Value.ToString()).ToString(); 
} 

我想替换一些内容与使用Dictionary但唯一的最后一个关键www.abc.com我上面的刺已经成功地取代替换附加键和值的内容。如何解释

我正在使用C#

+2

字符串是不可改变的。你并没有修改MyStringFile,只是将修改后的值赋给MyStringFileNew。尝试MyStringFile = MyStringFile.Replace(...,...) – john 2014-12-07 19:00:46

回答

1

您正在使用未更改的字符串来替换您的值。

你的代码更改为:

foreach (KeyValuePair<string, string> pair in myv) 
{ 
    MyStringFile = MyStringFile.Replace(pair.Key.ToString(), pair.Value.ToString()).ToString(); 
} 

MyStringFileNew = MyStringFile; 

还是这样做是为了防止改变原始字符串:

MyStringFileNew = MyStringFile; 

foreach (KeyValuePair<string, string> pair in myv) 
{ 
    MyStringFileNew = MyStringFileNew.Replace(pair.Key.ToString(), pair.Value.ToString()).ToString(); 
} 
+1

是的,它的工作完美谢谢阿里 – 2014-12-07 19:14:59