IequalityComparer для класса со многими свойствами не уникальная ценность

StackOverflow https://stackoverflow.com/questions/3082733

Вопрос

Как реализация для 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; }
}
Это было полезно?

Решение

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

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
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top