小编Xme*_*l25的帖子

克隆 XML 节点时无限循环“foreach”,C#

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”,列表的大小会无限增长

c# xml clone

3
推荐指数
1
解决办法
102
查看次数

标签 统计

c# ×1

clone ×1

xml ×1