string.replace不起作用

时间:2011-10-03 18:20:09

标签: c# xml string replace

我有接受字符串的函数(基本上是一个XML文档)。我正在做这个改变:

  if (filterXml.Contains("&"))
    {
        filterXml.Replace("&", "&");
    }

它正在达到这个条件,但没有取代

 & to &

这里有什么问题?

5 个答案:

答案 0 :(得分:13)

请记住,字符串是不可变的。因此,您必须将Replace方法的返回值(请注意它返回一个String对象)返回给您的变量。

  if (filterXml.Contains("&"))
  {
      filterXml = filterXml.Replace("&", "&");
  }

如果您正在使用String对象进行大量工作,请务必阅读String reference page

答案 1 :(得分:7)

您需要保存结果:

filterXml = filterXml.Replace("&", "&");

但我建议编码所有特殊的XML字符。

答案 2 :(得分:6)

您甚至不需要进行包含检查。只需执行以下操作:

filterXml = filterXml.Replace("&", "&");

如果字符串中没有任何&符号,则不会发生任何变化。

答案 3 :(得分:4)

尝试 -

  if (filterXml.Contains("&"))
    {
        filterXml = filterXml.Replace("&", "&");
    }

字符串在.net中是不可变的,因此replace函数返回一个新字符串,而不是改变它所调用的字符串。您可以将更改的结果分配给包含原始字符串值的变量。

答案 4 :(得分:1)

  if (filterXml.Contains("&"))
    {
        filterXml = filterXml.Replace("&", "&");
    }