In a lot of sample docs you will see generic types like string that have default comparison and equality behavior. I think the documentation could/should be improved if custom objects samples were included.
The reason I dislike code examples like this is that they do not represent the intent of implementing the interface. We are talking about implementing IEquitable and there is no reason to do this for a collection of string, because the default behavior "just works". What users really want to see is an implementation of this interface against a custom type!
If you have a custom object, you implement IEquitable(If T)
Public Class TextBody
Implements IEquatable(Of TextBody)
Now your collection of that T, will be able to call the contains method that is automatically inserted as a stubbed function when you hit enter.
Now you fill in the function
Public Function Equals1(ByVal other As TextBody) As Boolean Implements System.IEquatable(Of TextBody).Equals
Return (Me._adText = other.adText) And (Me._adBody = other.adText)
End Function