IEqualityComparer对于具有许多属性的类都没有唯一值

时间:2010-06-21 07:19:38

标签: linq entity compare iequalitycomparer icomparer

如何为此课程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 个答案:

答案 0 :(得分:2)

看起来你的对象有一个ID字段。如果这对每个对象都是唯一的,那么您只需要对该属性进行比较。

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

注意:只有在ID是唯一的情况下才能使用。


如果ID属性不唯一,则需要比较所有对象属性。

public Boolean Equals(ServidorSeleccionadoDto obj)
{
    return this.ID == obj.ID && 
           this.Nombre.Equals(obj.Nombre) && 
           ... etc
}