Это еще одна проблема программирования, в которой, я думаю, все выглядит нормально, но не работает должным образом.
Я пытаюсь очистить все ссылки с веб-страницы с помощью htmlagilitypack и добавить их в сетку данных, но НЕ для добавления дубликатов в сетку данных.
Код:
webBrowser.Navigate(url);
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(webBrowser.DocumentText);
if (debug)
{
Helpers.SaveDebugToFile(@"Debug\[google.com]-" + DateTime.Now.ToString("hhmmssffffff") + "-debug.html", webBrowser.DocumentText);
}
List<string> values = new List<string>();
foreach (HtmlNode link in doc.DocumentNode.SelectNodes("//a[@href]"))
{
HtmlAttribute href = link.Attributes["href"];
if (href.Value.Contains("google.") || href.Value.Contains("search?") || href.Value.StartsWith("/") || href.Value.Length < 5)
{
// Ignore.
}
else
{
// DO NOT ADD TO THE DATAGRID IF href.Value ALREADY EXISTS IN COLUMN 1 //
values.Add(href.Value);
}
}
foreach (var value in values.Distinct().ToList())
{
DataGridViewLinks.Rows.Add(value, randomKeyword);
}
Код работает, но он все еще добавляет дубликаты в первый столбец, но я добавляю только Distinct()
значений (или это то, что я намеревался сделать).
Я не вижу причины этой проблемы, я просмотрел код несколько раз и не заметил ничего очевидного.
EDIT: