私はこのコードを持っています:
private void ToLocalSiteOnlyToolStripMenuItem_Click(object sender, EventArgs e)
{
if (buttonSwitch == true)
{
ToLocalSiteOnlyToolStripMenuItem.ForeColor = Color.Red;
buttonSwitch = false;
removeExt = true;
}
else
{
ToLocalSiteOnlyToolStripMenuItem.ForeColor = Color.Black;
buttonSwitch = true;
removeExt = false;
}
}
private void removeExternals(List<string> externals)
{
for (int i = 0; i < externals.Count; i++)
{
if (!externals[i].StartsWith(mainUrl))
{
externals.RemoveAt(i);
}
}
}
メニューとその赤をクリックすると、ここで関数removeExternalsを呼び出します。
private List<string> test(string url, int levels,DoWorkEventArgs eve)
{
HtmlWeb hw = new HtmlWeb();
List<string> webSites;
try
{
doc = hw.Load(url);
webSites = getLinks(doc);
removeDupes(webSites);
if (removeExt == true)
{
removeExternals(webSites);
}
これで、webSitesリストには次のようなサイトのリンクが含まれます。
www.ynet.co.il
www.hot.co.il
www.walla.co.il
これで、変数mainUrlはhttp://www.ynet.co.il になります。テスト関数を呼び出すたびに、webSitesに異なるリンクのリストを設定して、http://wwwで始まらないすべてのリンクを削除します。 .ynet.co.il
したがって、最終的には、毎回、次で始まるリンクのみがWebサイトに表示されます: http://www.ynet.co.il
しかし、removeExternals関数が思ったようにうまく機能していないようです。
問題はどこにあり、どのように修復するのですか?ありがとう。