我一直在制作一个小的控制台应用程序,它将在网站上查找最畅销的产品。 我创建了两个HtmlNodeCollection变量。
public void setup()
{
try
{
HtmlDocument doc = _web.Load(_url);
Console.WriteLine("beginning " + _url);
HtmlNodeCollection node = doc.DocumentNode.SelectNodes("//*[@id='b7907c3f23606bda85d1bf4da658198da2d954d3-carousel']/div/div/div/div/div/div/h5/a");
HtmlNodeCollection price = doc.DocumentNode.SelectNodes("//*[@class='price-info']/p");
if (node != null)
{
foreach (var item in node)
{
Console.WriteLine(item.InnerText);
}
}
Console.ReadLine();
}
catch (Exception e)
{
Console.WriteLine("There has been and exception thrown in setup " + e);
}
}
foreach循环正常工作,但我不知道如何以价格循环。是否可以在foreach循环中使用运算符?如果没有,有没有办法循环它们两个?感谢您提供的任何帮助
答案 0 :(得分:0)
我假设你想要经历两个相同长度的集合并配对这些项目。 Enumerable.Zip
这样做:
nodes.Zip(prices, (n, p) => new { n, p });
请注意,如果集合未对齐,您将默默地得到错误的结果。你最好在循环之前断言一切都很好:
Debug.Assert(nodes.Count == prices.Count);