1

我有一个自定义类设置为具有两个属性 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 的行为如何?它是在寻找相同的数据结构,还是仅仅匹配我的密钥的一个属性?

如果可以的话,请提供一个链接,我可以在其中查看有关此的一些文档。

编辑 包含方法类型安全吗?

4

2 回答 2

5

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

默认情况下(如果没有被覆盖)如果两个引用相同或两个结构成员相等则Equals返回。true

于 2009-02-27T19:00:40.850 回答
2

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

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

于 2009-02-27T19:14:33.217 回答