这里介绍一下C# list的基础操做: 去重、差集、并集、交集ide
下面,咱们看看例子。咱们建立了一个User实体,包含两个list,User实体若是Id相等,则相等。this
users1是id 1到4的集合,users2是id 4到8的集合。spa
List<User> users1 = new List<User>(); users1.Add(new User() {Id = 1, Age = 1, Name = "Name01"}); users1.Add(new User() { Id = 2, Age = 2, Name = "Name02" }); users1.Add(new User() { Id = 3, Age = 3, Name = "Name03" }); users1.Add(new User() { Id = 4, Age = 4, Name = "Name04" }); List<User> users2 = new List<User>(); users2.Add(new User() { Id = 4, Age = 44, Name = "Name044" }); users2.Add(new User() { Id = 5, Age = 55, Name = "Name01" }); users2.Add(new User() { Id = 6, Age = 66, Name = "Name06" }); users2.Add(new User() { Id = 7, Age = 77, Name = "Name07" }); users2.Add(new User() { Id = 8, Age = 88, Name = "Name08" }); //把两个list合并在一块儿 var result1 = new List<User>(); result1.AddRange(users1); result1.AddRange(users2); //去重:在result1中去重 var result2 = result1.Distinct().ToList(); //差集:users1在users2之中的差集 var result3 = users1.Except(users2).ToList(); //并集:users1与users2 合起来不重复的元素 var result4 = users1.Union(users2).ToList(); //交集:users1与users2 相同的元素 var result5 = users1.Intersect(users2).ToList();
下面咱们看看User实体的定义:code
须要注意的是,咱们重写了User的GetHashCode与Equals方法来比较对象是否相等。orm
public class User { public long Id { get; set; } public string Name { get; set; } public int Age { get; set; } public override bool Equals(object obj) { if (obj == null || GetType() != obj.GetType()) { return false; } User u = (User) obj; if (this.Id != 0 && u.Id == this.Id) return true; return false; } public override int GetHashCode() { return this.Id.GetHashCode(); } public override string ToString() { return string.Format("id=" + this.Id); } }
能够关注本人的公众号,多年经验的原创文章共享给你们。对象