多くのプロパティを持つクラスのIequalityComperは、一意の値でもありません
-
28-09-2019 - |
質問
どのように実装しますか 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; }
}
解決
オブジェクトには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
}
所属していません StackOverflow