美文网首页
C# 集合的交集 差集 并集 去重

C# 集合的交集 差集 并集 去重

作者: 怨念lm | 来源:发表于2018-04-10 14:12 被阅读0次
      class Student
        {
            public int Id { get; set; }
            public string Name { get; set; }
            public int Age { get; set; }
        }
    
        class CompareStudent : IEqualityComparer<Student>
        {
            public bool Equals(Student x, Student y)
            {
                return x.Id == y.Id;
            }
    
            public int GetHashCode(Student p)
            {
                if (p == null)
                    return 0;
                return p.Id.GetHashCode();
            }
        }
    
    
    
        class Program
        {
            static void Main(string[] args)
            {
                List<Student> stuA = new List<Student>();
                List<Student> stuB = new List<Student>();
                stuA.Add(new Student { Id = 1, Name = "1", Age = 1 });
                stuA.Add(new Student { Id = 5, Name = "5", Age = 2 });
                stuB.Add(new Student { Id = 1, Name = "1", Age = 1 });
                stuB.Add(new Student { Id = 2, Name = "2", Age = 2 });
                stuB.Add(new Student { Id = 3, Name = "3", Age = 3 });
                stuB.Add(new Student { Id = 4, Name = "4", Age = 4 });
                var result = stuA.Where(a => !stuB.Exists(b => b.Id == a.Id)); //在A中存在不再B中存在 即求差集
                var resc = stuA.Except(stuB, new CompareStudent()); //差集
                var resj = stuA.Intersect(stuB, new CompareStudent());// 交集
                var resb = stuA.Union(stuB, new CompareStudent()); //并集
                var resD = stuB.Distinct(new CompareStudent()); //去重
            }
        }
    

    相关文章

      网友评论

          本文标题:C# 集合的交集 差集 并集 去重

          本文链接:https://www.haomeiwen.com/subject/lgtnhftx.html