В этой статье описано, как проверить существование элемента в List при его добавлении.
Например, у вас есть «свой» List (т.е. список элементов своего класса) и перед добавлением в него вам нужно проверить существует ли уже такой элемент в списке. Чтобы это сделать нужно использовать метод Contains.
Но т.к. мы используем свой класс, то еще нужно определить метод Equals для нашего класса (предварительно наследовав интерфейс IEquatable).
А теперь пример.
Например, имеем следующий класс:
1 2 3 4 5 |
class SomeClass { public string Field1 { get; set; } public int Field2 { get; set; } } |
Наследуем интерфейс IEquatable и добавляем метод Equals:
1 2 3 4 5 6 7 8 9 10 |
class SomeClass : IEquatable<SomeClass> { public string Field1 { get; set; } public int Field2 { get; set; } public bool Equals( SomeClass obj ) { return this.Field1.Equals( obj.Field1 ) && this.Field2.Equals( obj.Field2 ); } } |
Как видно из кода выше мы наследовали интерфейс IEquatable и реализовали метод Equals, который возвращает TRUE, когда значения обеих полей совпадают. Можно изменить этот метод как угодно: чтобы считал одинаковыми объекты, если значение хотя бы одного поля совпадало или проверял значение только одного поля или т.п.