c# 比较两个列表<T> 显示添加、删除和属性 更改
c# Comparing two List<T> Show Additions, Deletions and Property Changes
我有两个 myObj 类型的列表,定义如下:
public class myObj
{
public int Id {get;set;}
public string Name {get;set}
public Address Address {get;set;}
}
这使用另一个 class 称为地址
public class Address
{
public int Id {get;set;}
public string Line1 {get;set}
public string ZipCode {get;set;}
}
我有一个主子如下。
sub Main()
{
var myTestObj1 = new List<myObj>(
new myObj(){ Id = 1, Name = "Bob", new Address(){ Id = 1, Line 1= "", ZipCode = "90120"}},
new myObj(){ Id = 2, Name = "Kaz", new Address(){ Id = 2, Line 1= "", ZipCode = "90121"}}
);
var myTestObj2 = new List<myObj>(
new myObj(){ Id = 2, Name = "Kaz", new Address(){ Id = 2, Line 1= "", ZipCode = "00121"}}
new myObj(){ Id = 3, Name = "Suz", new Address(){ Id = 3, Line 1= "", ZipCode = "99999"}}
);
}
我需要做的是检查列表是否存在差异。从上面,我正在寻找以下内容。
寻找 myTestObj1 和 myTestObj2 之间的区别
我希望看到:
myObj id = 1 = New Record
myObj id = 2 = ZipCode has Changed
myObj id = 3 = Record to be deleted
到目前为止,我已经研究过使用反射,但示例仅显示一对一的比较。
C# Compare Two Lists of Different Objects
Difference between two lists
Compare two List objects for equality, ignoring order
如果这是重复的,有人可以指出在哪里可以找到解决方案吗,因为我已经找了几个小时了。
谢谢
谢谢你的建议,但最后我选择了一种更简单的方法。
我向视图模型添加了一个新的 属性,它包含一个用于添加、删除、更新或不更改的枚举值。该视图将此字段添加为隐藏输入。然后它会被一些 java 脚本更新。
我有两个 myObj 类型的列表,定义如下:
public class myObj
{
public int Id {get;set;}
public string Name {get;set}
public Address Address {get;set;}
}
这使用另一个 class 称为地址
public class Address
{
public int Id {get;set;}
public string Line1 {get;set}
public string ZipCode {get;set;}
}
我有一个主子如下。
sub Main()
{
var myTestObj1 = new List<myObj>(
new myObj(){ Id = 1, Name = "Bob", new Address(){ Id = 1, Line 1= "", ZipCode = "90120"}},
new myObj(){ Id = 2, Name = "Kaz", new Address(){ Id = 2, Line 1= "", ZipCode = "90121"}}
);
var myTestObj2 = new List<myObj>(
new myObj(){ Id = 2, Name = "Kaz", new Address(){ Id = 2, Line 1= "", ZipCode = "00121"}}
new myObj(){ Id = 3, Name = "Suz", new Address(){ Id = 3, Line 1= "", ZipCode = "99999"}}
);
}
我需要做的是检查列表是否存在差异。从上面,我正在寻找以下内容。
寻找 myTestObj1 和 myTestObj2 之间的区别
我希望看到:
myObj id = 1 = New Record
myObj id = 2 = ZipCode has Changed
myObj id = 3 = Record to be deleted
到目前为止,我已经研究过使用反射,但示例仅显示一对一的比较。
C# Compare Two Lists of Different Objects
Difference between two lists
Compare two List objects for equality, ignoring order
如果这是重复的,有人可以指出在哪里可以找到解决方案吗,因为我已经找了几个小时了。
谢谢
谢谢你的建议,但最后我选择了一种更简单的方法。
我向视图模型添加了一个新的 属性,它包含一个用于添加、删除、更新或不更改的枚举值。该视图将此字段添加为隐藏输入。然后它会被一些 java 脚本更新。