编辑:好的,现在我们知道它XmlReader.Value,它确实返回一个字符串,这绝对不是问题.我将在下面留下以前的答案以供将来参考.
我的猜测是,有一些"奇怪"的Unicode字符没有显示在调试器中......或者监视窗口的行为很奇怪.戴上手表xml.Value.ToCharArray()将有助于表明这一点.
(顺便说一下,给一个Dictionary<,>参数这个名字list很混乱......)
编辑:此外,使用支撑和缩进也将使您的代码更容易遵循...
我们现在无法确定,但我的猜测是Value属性是类型object,而不是string.这意味着==并!=执行参考比较(运算符被重载,未被覆盖,请记住).你想要的多态行为:
if (xml.Value.Equals("\n"))
Run Code Online (Sandbox Code Playgroud)
或者如果xml.Value可以合法地为null:
if ("\n".Equals(xml.Value))
Run Code Online (Sandbox Code Playgroud)