2010-06-21 30 views
-1

該類的IEqualityComparer如何實現?具有許多屬性的類的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; } 
} 

回答

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 
} 
+0

也許使用反射比較所有屬性? – Kiquenet 2015-03-18 08:18:45