我有接受字符串的函数(基本上是一个XML文档)。我正在做这个改变:
if (filterXml.Contains("&"))
{
filterXml.Replace("&", "&");
}
它正在达到这个条件,但没有取代
& to &
这里有什么问题?
答案 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("&", "&");
}