替换列表中的字符串不起作用

Dim*_*dis 0 c# string replace list str-replace

在我的生活中,我不能理解为什么Replace();当我尝试替换String类型列表中的元素文本时该方法不起作用.这个问题在某种程度上与我之前的一个帖子有关[在这里找到:合并两个文件并处理重复的条目(对于完整的代码,查看它也是一个好主意)],但最后当天,这一切归结为命令不起作用,而我的代码实际上是正确的(!).

我会举例说明在我的情况下什么不起作用.在最基本的形式中,为了举例,这是我想要完成但它不起作用(真实!):

[在我的原始代码中,我已经三次检查(使用断点和所有内容)我的列表确实包含我要替换的字符串(我正在替换元素本身!),但它不会这样做!严肃地说,现在它是一个4元素列表(尽管可以添加更多元素,参考其他线程).

最后一件事,对标点符号感到遗憾(我知道的感叹号太多了),但我实际上对此持续不满.下面的代码(记住,最基本的形式,但我试过的一个例子):

// List[index].Replace(oldValue, newValue);
newFile[3].Replace(newFile[3], "Replace it with this!");
Run Code Online (Sandbox Code Playgroud)

你能帮帮我吗?

dca*_*tro 10

newFile[3] = newFile[3].Replace(newFile[3], "Replace it with this!");
Run Code Online (Sandbox Code Playgroud)

在c#中,字符串是不可变的.因此,Replace方法返回一个新字符串.

编辑:字符串不可变的主要原因是使它们成为线程安全的.如果您想了解更多信息,请阅读:为什么.NET String是不可变的?

  • 你不得不问Jim Iliadis哈哈.我认为这仅仅是为了一个例子,他的实际代码可能不会这样做. (2认同)