XmlDocument xDoc = new XmlDocument();
xDoc.LoadXml("<offers>" +
"<offer id = '1'>" +
"<name>Offer1</name>" +
"</offer>" +
"<offer id = '2'>" +
"<name>Offer2</name>" +
"</offer>" +
"</offers>");
XmlNode offers = xDoc.SelectSingleNode("//offers");
XmlNodeList listOffer = xDoc.SelectNodes("//offers/offer");
foreach (XmlNode offer in listOffers)
{
XmlNode clone = offer.Clone();
offers.AppendChild(clone);
Console.WriteLine("Create clone");
}
xDoc.Save("out.yml");
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,我得到了一个无限循环“foreach”。但是,如果您在循环内放置断点并打开变量“listOffers”进行跟踪,则程序将以正确的结果结束。为什么会发生这种情况以及如何解决?
如果您不跟踪变量“listOffers”,列表的大小会无限增长