C# 如何比较列表<;MyClass>;动态地寻找差异

C# 如何比较列表<;MyClass>;动态地寻找差异,c#,list,dynamic,comparison,C#,List,Dynamic,Comparison,我得到了我的类User,它包含不同的属性,例如bool,int。。。 在使用列表之前,我保存了它的原始副本,以确定是否需要在程序结束时序列化 那么我如何比较这两个列表呢?我想要这样的东西 if (Users.Compare<User>(this.OrigCfg.Users)) // they are equal if(Users.Compare(this.OrigCfg.Users)) //他们是平等的 这是我的班级 public class User { pri

我得到了我的类
User
,它包含不同的属性,例如
bool
int
。。。 在使用列表之前,我保存了它的原始副本,以确定是否需要在程序结束时序列化

那么我如何比较这两个列表呢?我想要这样的东西

if (Users.Compare<User>(this.OrigCfg.Users))
    // they are equal
if(Users.Compare(this.OrigCfg.Users))
//他们是平等的
这是我的班级

public class User
{
    private List<Branch> branches;
    internal string login;
    internal string sourcePath;
    internal string pathOnce;
    internal string destPath;
    internal UserTypes userType;
    internal bool? copy;
    internal bool? delete;
    internal int? taskTimeout;
    internal bool? deleteZip;
    internal int? availableSpaceLimit;
}
公共类用户
{
私人上市分行;
内部字符串登录;
内部字符串源路径;
内弦音;
内部字符串路径;
内部用户类型用户类型;
内部布尔拷贝;
内部布尔?删除;
内部int?任务超时;
内部bool?deleteZip;
内部int?可用空间限制;
}
Branch
是我的另一个类,它只包含一个
string
属性(尚未)
UserTypes
是四种类型的枚举


我已经尝试了Stackoverflow上发布的一些东西,但它们似乎对我不起作用。我也在寻找一种方法来比较用户类之间的差异,但遗憾的是,我找不到任何合适的方法。

您是否检查了此url:我希望避免对每个成员进行寻址。如果我添加了另一个成员,我需要记住编辑compare方法。如果我没有,那就太好了。但是应该有一个属性能够区分两个给定用户的。您将为几个字段实现这个逻辑,而不是为一个类中的每个字段。我不明白您的意思。对于
int
string
,…,如何实现它。。。?我必须明确地编写
myUser.login
来比较它。我不希望这样,因为每次我在
User
类中进行更改时,我都需要关心这个方法。在这种情况下,您可以选择使用反射来识别属性名称和值,然后执行比较,这是一个通用的比较