J'ai deux objets dérivés de la même classe de base. Supposons que ObjA soit la classe de base et ClassB et ClassC héritent d'ObjA.Recherche de l'égalité dans les éléments de deux listes de types différents
Si j'ai un
dim lst1 as List(Of ClassB)
dim list2 as List(Of ClassA)
et je veux vérifier l'existence de quelque chose qui est en lst1 qu'il est dans liste2, maintenant je ne suis intéressé à comparer contre un bit d'information clé que est déclaré dans la classe de base et est une chaîne.
Comment puis-je parcourir la comparaison lst1 avec list2? Je pensais que je pouvais, je surcharger/remplacer la méthode Equals mais j'ai pas de joie pour l'une des classes et dire quelque chose semblable à
Public Overloads Overrides Function Equals(ByVal obj As Object) As Boolean
Dim temp As ClassA = TryCast(obj, ClassA)
If temp.Id = Me.Id Then
Return True
Else
Return False
End If
End Function
Mais cela ne semble pas fonctionner.
EDIT: Informations supplémentaires. Si je l'appelle
lst1.contains(instance of ClassA)
Cela jette une erreur comme (à juste titre) prévoit d'obtenir une instance de ClassB.