在我的 C# 程序中,我解析了一个 XML 文件,该文件是之前使用 XSLT 创建的。当我正常运行程序时,变量 extraClasses 包含 3 个节点。问题是我使用的选择器在应用于此特定 XML 时必须返回 2 个节点。
试图在我的代码中找到错误,我使用了调试器。当我检查 variable 的值时extraClasses
,节点数为 2,结果符合预期。不检查变量时,节点数为 3,结果错误。
此外,当我添加一条if
语句来检查extraClasses
计数是否大于 2 时,在分配之后,我的程序工作正常(extraClasses.Count = 2)。
为什么会这样?为什么值检查会改变变量的内容?我正在使用 C# 和 .NET Framework 4。
var extraClasses = xml.SelectNodes("//Class[@level='2']");
foreach (XmlElement extraClass in extraClasses) {
/* create some new nodes and append to the xml */
}