Вы пытаетесь вставить 2 типа в один и тот же список ...
Какой тип InternalUrls
?
Это:
If Not (_InternalUrls.Contains(_Url & _Link)) Then
подразумевает, что это IList(Of String)
но это:
_InternalUrls.Add(New Typing.LinkTyping() With {
Затем пытается добавить новый экземпляр вашего класса LinkTyping к нему ...
Как насчет чего-то вроде ...
Сделать InternalURLs
быть List(Of LinkTyping)
Тогда
Dim MyUrl = String.Format("{0}{1}", _Url, _Link)
If Not InternalURLs.Any(function(x) x.Url = MyUrl) Then
InternalURLs.Add(New Typing.LinkTyping() With {<Blah>})
End If
NB. Приведенное выше решение предполагает, что URL-адреса будут соответствовать одному и тому же регистру в целях сопоставления (как и в вашем примере, если нет перегруженного оператора сравнения) - вы можете использовать сравнение без учета регистра ...
If Not InternalURLs.Any(function(x) String.Equals(x.Url, MyUrl, StringComparison.OrdinalIgnoreCase)) Then