سؤال

كيف يتم تنفيذ 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