我有2个对象列表,我需要知道是否有任何属性发生了变化。 这就是我所拥有的:
public class Person
{
public int PersonId { get; set; }
public string Name { get; set; }
public string Email { get; set; }
}
然后,我有2个Person
列表。
var list1 = new List<Person>();
var list2 = new List<Person>();
我需要知道list1
和list2
是否包含一些Person
个对象,请确保属性的值相同,并通过PersonId
进行比较
答案 0 :(得分:0)
我确信有不同的方法可以做到这一点,但我建议的解决方案如下。
var list1 = new List<Person>
{
new Person()
{
PersonId = 123,
Name = "Tom",
Email = "tom@x.com"
}
};
var list2 = new List<Person>
{
new Person()
{
PersonId = 123,
Name = "Tom",
Email = "tom@x.com"
}
};
var count = list1.Count;
if(list1.Count.Equals(list2.Count))
{
var i;
for(i=0; i< list1.Count; i++)
{
if(!list1[i].PersonId.Equals(list2[i]))
{
//DO somthing they lists are NOT SAME
//One of the Person object contain different ID
}
}
}
else
{
//DO somthing, list count is different..
}
我还建议您尝试使用
Dictionary<string, Person>
键值对,其中字符串是Person的ID并且有两个Dictionary键,比较它是否存在于另一个Dictionary中,它不会遍历整个Dictionary,这使得它不那么重
希望有所帮助