编辑:我试图进行递归:在 Form1 的顶部,我有:
List<string> webSites = new List<string>();
List<string> csFiles = new List<string>();
在构造函数中,我有:
webCrawler(url, 2);
然后我有函数getLinks:
private void getLinks()
{
foreach (HtmlNode link in doc.DocumentNode.SelectNodes("//a[@href]"))
{
var href = link.Attributes["href"].Value;
richTextBox1.Text += href + Environment.NewLine;
webSites.Add(href);
}
}
private List<string> test(string url, int levels)
{
doc = hw.Load(url);
getLinks();
if (levels == 0)
{
return csFiles;
}
else
{
for (i = 0; i < webSites.Count(); i++)
{
string t = webSites[i];
var f = levels * test(url, levels - 1);
}
}
return csFiles;
}
webSites 和 csFiles 都是 List,levels 是 int。问题在于:var f = levels * test(url, levels - 1);
在右侧我得到错误:错误运算符'*'不能应用于'int'和'System.Collections.Generic.List类型的操作数
我该如何解决?
在函数测试中,我还调用函数 getLinks() 我还需要为 cs 文件创建一个函数,该函数将从每个站点仅取出 .cs 文件,最后在测试函数中我需要返回 csFiles 列表。