小编Tho*_*asW的帖子

为什么我的 C# Xml 代码只在我枚举变量 enumerable 时有效

我正在编写格式化 XML 文件的代码,以便子文件夹节点实际上嵌套在其父节点中。源 XML 将每个文件夹作为根中的单独子节点,而不是像您期望的那样在其主文件夹中包含子文件夹的正确树。这个问题的代码是关于:

// Load original XML

string sFile = "PathFile";
XmlDocument doc = new XmlDocument();
doc.Load(sFile);

var n = doc.DocumentElement.SelectNodes ("//*");   // Load all nodes into nodelist n
// int nCount = n.Count;                           // If uncommented code works

foreach(XmlNode x in n)
{ rest of the code }

Run Code Online (Sandbox Code Playgroud)

现在我的代码工作正常,但只是有时,即使在两次运行之间没有改变任何东西。我已将范围缩小为:在 Visual Studio 中调试代码时,如果我只是从头到尾运行代码,则会出错。如果我中途中断并查看 XmlNodelist n 中的属性(通过将光标悬停在它上面并查看元素计数),它确实可以工作。发现这一点后,我添加了

int nCount = n.Count; 
Run Code Online (Sandbox Code Playgroud)

行,现在代码从头到尾在无人监督的情况下运行。

这里发生了什么,解决这个问题的正确方法是什么?注意: doc.LoadXml 不适用于此特定文件。

谢谢你的负担,

托马斯

c# enumerate enumerable xml-attribute xmllist

2
推荐指数
1
解决办法
73
查看次数

标签 统计

c# ×1

enumerable ×1

enumerate ×1

xml-attribute ×1

xmllist ×1