我在这里看到过一些类似的线程,但没有一个能够解答我的问题,而且我现在挣扎得不得不现在去问。有没有办法在C#中比较两种不同类型的对象#
我有两个对象,一个叫做Customer,另一个叫数据传输对象,叫做customerDto。
客户:
public partial class Customer
{
[DataMember]
public int Id { get; set;}
[DataMember]
public string Title { get; set;}
[DataMember]
public string FirstName { get; set;}
[DataMember]
public string Middle { get; set;}
[DataMember]
public string LastName { get; set;}
[DataMember]
public string Email { get; set;}
[DataMember]
public string HomePhone { get; set;}
[DataMember]
public string MobilePhone { get; set;}
[DataMember]
public string AddressLine1 { get; set;}
[DataMember]
public string AddressLine2 { get; set;}
[DataMember]
public string PostCode { get; set;}
[DataMember]
public DateTime? DateOfBirth { get; set;}
[DataMember][DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public string FullName { get; private set;}
}
public partial class Customer
{
public virtual ICollection<DeliveryDetail> DeliveryDetails { get; set; }
public virtual ICollection<Order> Order { get; set; }
}
CustomerDto:
public class CustomerDto : ICloneable
{
public int Id { get; set; }
public string AddressLine1 { get; set; }
public string AddressLine2 { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string PostCode { get; set; }
public string Title { get; set; }
public string Email { get; set; }
public string HomePhone { get; set; }
public string MobilePhone { get; set; }
public DateTime? DateOfBirth { get; set; }
}
我需要比较他们分享的特性,但我不想写多行的if语句,因为这是凌乱。有没有办法做到这一点?
我只需要查看它们共享的任何属性是否有差异。如果一个不同,那么我们可以推进和更新客户。
在此先感谢。
为什么不制作它的一个子类,并在该元素上进行比较? –
你也可以使用反射来比较具有相同名称的字段,但我认为它可能更好的子类化或制作接口 – Pikoh