Pergunta

Eu tenho uma classe personalizada configurada como uma chave que tem duas propriedades, X e Y

Eu tenho algo semelhante a isto:

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

A minha pergunta é esta: Como é que os .Contains na lista (de T) se comportam? Será que olhar para uma estrutura de dados idênticos, ou ele simplesmente corresponder em uma das propriedades de minha chave?

Se você puder, por favor inclua um link onde eu posso olhar para alguma documentação sobre isso.

Editar É o método Typesafe Contém?

Foi útil?

Solução

Ele usa o método Equals para verificar a identidade.

Por padrão (se não for substituído) Equals retornos true se duas referências são idênticos ou duas estruturas são iguais memberwise.

Outras dicas

Eu só perguntei a mesma pergunta ontem:)

Seu TestClass deve implementar IEquatable (do T) http://msdn.microsoft.com/en-us/library/ms131187 (VS.80) .aspx interface para torná-lo tipo seguro

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top