【发布时间】:2020-08-26 01:08:09
【问题描述】:
我学习C# 并尝试编写一个简单的应用程序。想问你帮我优化下面的代码。
我写了 2 种方法,并考虑使用 yield 和 LINQ 让它变得更好。想想有没有可能?
public List<string> getsSubpagesUrls(int subpages)
{
List<string> subpagesUrls= new List<string>();
for (int i = 1; i < subpages; i++)
{
string singleUrl = $"url/search%&page={i}";
subpagesUrls.Add(singleUrl);
}
return subpagesUrls;
}
public List<string> getAllAnnouncementIds(int numberOfSubpages)
{
List<string> annIds = new List<string>();
foreach (var url in getsSubpagesUrls(numberOfSubpages))
{
HtmlWeb web = new HtmlWeb();
var htmlDoc = web.Load(url);
var htmlBody = htmlDoc.DocumentNode.SelectNodes("//xpath");
var ids = htmlBody.Elements("element");
foreach (var id in ids)
{
annIds.Add(id.Attributes["data-item-id"].Value);
}
}
return annIds;
}
【问题讨论】:
标签: c# linq html-agility-pack ienumerable yield