iequalitycomparer للفصل مع العديد من الخصائص ليست قيمة فريدة
-
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; }
}
المحلول
يبدو أن كائنك يحتوي على حقل معرف. إذا كان هذا فريدًا لكل كائن ، فستحتاج فقط إلى مقارنة تلك الخاصية.
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
}
لا تنتمي إلى StackOverflow