第一个List“AStore”迭代并为每次迭代创建一个新列表。第二个List“APages”迭代但不会在每次迭代时创建新列表。每个列表创建和List.Add都有相同的位置。这有什么不对?
public void Promos()
{
//get store info and id
var storeinfo = new HtmlWeb();
var storeshtm = storeinfo.Load(@"Stores.htm");
var nodes = storeshtm.DocumentNode.SelectNodes("div");
List<Store> AStore = new List<Store>();
nodes = nodes[0].ChildNodes;
int a = 0;
foreach (var node in nodes)
{
if (node.Name != "#text")
{
AStore.Add(new Store(
node.ChildNodes[1].ChildNodes[1].Attributes[7].Value,//storewebid
"Astore",//storename
node.ChildNodes[3].ChildNodes[1].ChildNodes[1].ChildNodes[3].InnerText,//storeaddress
node.ChildNodes[3].ChildNodes[1].ChildNodes[1].ChildNodes[5].InnerText,//storecity
node.ChildNodes[3].ChildNodes[1].ChildNodes[1].ChildNodes[5].InnerText,//storestate
node.ChildNodes[3].ChildNodes[1].ChildNodes[1].ChildNodes[5].InnerText,//storezip
node.ChildNodes[3].ChildNodes[1].ChildNodes[1].ChildNodes[7].InnerText,//storephone
""//storehours
)
);
}
}
for (int i = 0; i <= a; i++)
{
var circualr = new HtmlWeb();
var storehtm = circualr.Load(@"http://storewebsite/" + AStore[i].StoreWebID);
var cnodes = storehtm.DocumentNode.SelectNodes("//*[@id="+'"'+"Wrapper"+'"'+"]");
List<Pages> APages = new List<Pages>();
foreach (var cnode in cnodes)
if(cnode.ChildNodes[3].ChildNodes[3].ChildNodes[5].ChildNodes[3].ChildNodes[1].Name == "a")
APages.Add(new Pages(cnode.ChildNodes[3].ChildNodes[3].ChildNodes[5].ChildNodes[3].ChildNodes[1].Attributes[2].Value));//get inner page links
}
答案 0 :(得分:1)
每个列表创建都有相同的展示位置
您不具有相同的创建位置,{for AStore
是在for循环之外创建的,而APages
则是。