IEqualityComparer для класса со многими свойствами и не уникальным значением - PullRequest
0 голосов
/ 21 июня 2010

Как сделать реализацию для IEqualityComparer для этого класса?

Свойство ID не является уникальным. Ни одно из свойств не имеет уникальных значений.

Сущность имеет 7 свойств.

[Serializable()]
public class ServidorSeleccionadoDto
{
    [XmlAttribute()]
    public int Id { get; set; }

    [XmlAttribute()]
    public string Nombre { get; set; }

    [XmlAttribute()]
    public string IP { get; set; }

    [XmlAttribute()]
    public string Entorno { get; set; }

    [XmlAttribute()] // [XmlIgnore()]
    public string Habilitado { get; set; }

    [XmlAttribute()]
    public string Tipo { get; set; }

    [XmlAttribute()]
    public int IdGrupo { get; set; }
}

1 Ответ

2 голосов
/ 21 июня 2010

Похоже, у вашего объекта есть поле идентификатора. Если это уникально для каждого объекта, вам нужно сравнить только это свойство.

public Boolean Equals(ServidorSeleccionadoDto obj)
{
   return this.ID == obj.ID;
}

Примечание. Это будет работать только в том случае, если идентификатор уникален.


Если свойство ID не уникально, вам необходимо сравнить все свойства ваших объектов.

public Boolean Equals(ServidorSeleccionadoDto obj)
{
    return this.ID == obj.ID && 
           this.Nombre.Equals(obj.Nombre) && 
           ... etc
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...