Список VB.NET (из X). Содержит поведение - PullRequest
1 голос
/ 27 февраля 2009

У меня есть пользовательский класс, настроенный как ключ, который имеет два свойства, 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

У меня такой вопрос: как ведет себя .Contains в списке (из T)? Ищет ли она идентичную структуру данных, или она просто совпадает с одним из свойств моего ключа?

Если вы можете, пожалуйста, включите ссылку, где я могу посмотреть некоторую документацию по этому вопросу.

EDIT Является ли метод Содержит Typesafe?

Ответы [ 2 ]

5 голосов
/ 27 февраля 2009

Для проверки личности используется метод Equals.

По умолчанию (если не переопределено) Equals возвращает true, если две ссылки идентичны или две структуры равны для каждого элемента.

2 голосов
/ 27 февраля 2009

Я только что задал тот же вопрос вчера :)

Ваш TestClass должен реализовывать IEquatable (из T) http://msdn.microsoft.com/en-us/library/ms131187(VS.80).aspx интерфейс, чтобы сделать его безопасным для типов

...