angleharp を使用して Web ページを解析し、連絡先ページである可能性のあるリンクを検出しています。
これが私のコードです:
var config = Configuration.Default.WithDefaultLoader();
string address = "http://www.stackoverflow.com/";
Url baseurl = new Url(address);
var document = await BrowsingContext.New(config).OpenAsync(baseurl);
var links = document.Links.Where(x => ((IHtmlAnchorElement)x).Host == baseurl.Host ).ToList();
var contacts = links.Where(x => ((IHtmlAnchorElement)x).PathName.ToLower().Contains("contact")).Select(x => ((IHtmlAnchorElement)x).PathName).Distinct();
動作しますが、連絡先で PathName 値が重複しています。それぞれに対して 1 つの値のみを取得したいのですPathName
が、select/distinct が機能していません。
独自のカスタム比較子を作成する必要がありますか、または linq クエリを変更する方法はありますか? ホストとパス名だけで、他のデータは必要ありません。