gpt4 book ai didi

c# - 为什么我的 Foreach 只输出第一位数据?

转载 作者:太空宇宙 更新时间:2023-11-03 19:39:47 25 4
gpt4 key购买 nike

一般来说,对于机器人和 C# 来说还算是新手。我正在尝试输出匹配 //a[@class='featuredBox 的所有链接内部文本,但它只输出数据的第一位。

当我调试时,它确实附加了很多值,所以我很困惑为什么不输出它们?

    protected void Page_Load(object sender, EventArgs e)
{
HtmlAgilityPack.HtmlWeb web = new HtmlAgilityPack.HtmlWeb();
HtmlAgilityPack.HtmlDocument doc = web.Load("https://www.jasminedirectory.com/computers/companies/");

var headingNames = doc.DocumentNode.SelectNodes("//a[@class='featuredBox']").ToList();

foreach (var item in headingNames)
{
botOutput.Text = item.InnerText + "</br>";
}
}

如有任何帮助,我们将不胜感激。

最佳答案

尝试在 = 之前添加一个 +。目前看起来您只是在每个循环中覆盖 Text 属性,听起来您想要附加每个匹配项。

protected void Page_Load(object sender, EventArgs e)
{
HtmlAgilityPack.HtmlWeb web = new HtmlAgilityPack.HtmlWeb();
HtmlAgilityPack.HtmlDocument doc = web.Load("https://www.jasminedirectory.com/computers/companies/");

var headingNames = doc.DocumentNode.SelectNodes("//a[@class='featuredBox']").ToList();

foreach (var item in headingNames)
{
botOutput.Text += item.InnerText + "</br>";
}
}

替代方法:

protected void Page_Load(object sender, EventArgs e)
{
HtmlAgilityPack.HtmlWeb web = new HtmlAgilityPack.HtmlWeb();
HtmlAgilityPack.HtmlDocument doc = web.Load("https://www.jasminedirectory.com/computers/companies/");

var headingNames = doc.DocumentNode.SelectNodes("//a[@class='featuredBox']").ToList();
botOutput = headingNames.Select(name => name.InnerText).Aggregate((current, next) => $"{current}</br>{next}") + "</br>";
}

关于c# - 为什么我的 Foreach 只输出第一位数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55170105/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com