У меня есть такой тип:
class Order
{
public List<IItem> AllItems { get; set; }
public string Name { get; set; }
public double TotalPurchases { get; set; }
public long Amount { get; set; }
public int Code { get; set; }
}
Я реализовал интерфейс IEquatable<T>
, чтобы проверить, являются ли два объекта этого типа одинаковыми или нет. Текущий метод Equals
выглядит следующим образом:
public virtual bool Equals(Order other)
{
if ((object)other == null)
{
return false;
}
return (this.AllItems.Equals(other.AllItems)
&& this.Name.Equals(other.Name)
&& this.TotalPurchases.Equals(other.TotalPurchases)
&& this.Amount.Equals(other.Amount))
&& this.Code.Equals(other.Code));
}
Но я хочу реализовать этот метод таким образом, чтобы он динамически проверял равенство всех существующих свойств (или, возможно, определенных свойств этого типа) без явного написания кода для проверок сравнения, как указано выше.
Надеюсь, я смог выразить свой вопрос с ясностью. :)
Спасибо!