我使用相同的值和代码测试2个循环: 1)For循环:
for (int i = 0; i < MyGlobals.check1Count; i++)
{
addToMyGlobals(root2.SelectNodes(strXPath)[i].OuterHtml.Trim(), XPathArrayIndex);
}
2)Foreach循环:
foreach (HtmlNode link1 in root2.SelectNodes(strXPath))
{
addToMyGlobals(link1.OuterHtml.Trim(), XPathArrayIndex);
}
结果是'Foreach循环'比'For循环'快5-6倍。为什么会发生什么,有人会给出解释呢?
答案 0 :(得分:0)
在for循环中,您在循环的每次迭代中执行昂贵的SelectNodes()方法。 foreach循环只执行一次。