C#获取两个集合中相同的和不同的结果

有一个需求,服务器根据客户端传过来的一个数组,找到数据库中不包含该数组数据的所有数据。本来是想用两个for循环比较的,然后觉得太臃肿,于是去万能的google看了下,果然,有更简洁的写法。遂记录之。

 static void Main(string[] args){
    int[] A = { 1, 2, 3, 4, 5 };
    int[] B = { 2, 4, 6 };
 
    IEnumerable<int> en = A.Intersect(B);// A∩B 集合A与集合B的交集
    foreach (var item in en)
    {
      Console.WriteLine(item);
    }
 
    IEnumerable<int> en2 = A.Concat(B).Except(A.Intersect(B));// 容斥原理
    foreach (var item in en2)
    {
       Console.WriteLine(item);
    }
 }

该代码运用了数学中的容斥原理,用一句代码就可以得到结果了。

原文地址:https://www.cnblogs.com/LvTea/p/7942437.html