我有一个自定义类设置为具有两个属性 X 和 Y 的键

我有类似的东西:

Dim test As New List(of TestClass)
Dim key as New TestData

key._a = A
key._b = B

For Each a As TestClass In SomeCollection
  If Not test.Contains(key) Then
     'Do Stuff
  End If
Next

我的问题是这样的:List(of T) 上的 .Contains 的行为如何?它是否寻找相同的数据结构,或者只是匹配我的密钥的属性之一?

如果可以的话,请附上一个链接,我可以在其中查看一些与此相关的文档。

编辑Contains 方法类型安全吗?

有帮助吗?

解决方案

它使用Equals方法来检查身份。

默认情况下(如果没有覆盖)Equals返回true如果两个参考是相同的或两种结构是相等的成员逐一。

其他提示

我刚问 同样的问题 昨天 :)

你的 TestClass 应该实现 IEquatable(T) http://msdn.microsoft.com/en-us/library/ms131187(VS.80).aspx 接口以使其类型安全

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top