替换(或其他字符串修改)不起作用

替换(或其他字符串修改)不起作用

对于下面的代码,我无法获得string.Replace工作:

someTestString.Replace(someID.ToString(), sessionID);

当我调试和检查参数时,它们有我期望的值-即someID.ToString()得到“1087163075”,而且sessionID有“108716308”和someTestString包含“1087163075”。

我不知道为什么这不会改变someTestString

完整样本:

string someTestString = 
      "<a href='myfoldert/108716305-1.jpg' target='_blank'>108716305-1.jpg</a>"someTestString.Replace("108716305", "NewId42");

结果someTestString)应该是:

"<a href='myfoldert/NewId42-1.jpg' target='_blank'>NewId42-1.jpg</a>"

但不会改变。字符串someTestString在命中我的代码后保持不变。


沧海一幻觉
浏览 640回答 3
3回答

慕森王

字符串是不可变的。结果string.Replace是一个具有已替换值的新字符串。您可以存储产生新变量的结果:var&nbsp;newString&nbsp;=&nbsp;someTestString.Replace(someID.ToString(),&nbsp;sessionID);如果您只想观察“字符串更新”行为,则只需将其重新分配到原始变量:someTestString&nbsp;=&nbsp;someTestString.Replace(someID.ToString(),&nbsp;sessionID);请注意,这适用于所有其他string像这样的功能Remove,&nbsp;Insert,TRIM和子字符串变体-它们都返回新的字符串,因为原始字符串不能修改。

互换的青春

someTestString&nbsp;=&nbsp;someTestString.Replace(someID.ToString(),&nbsp;sessionID);那应该对你有用
打开App,查看更多内容
随时随地看视频慕课网APP