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);
    }
 }

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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM