有一个需求,服务器根据客户端传过来的一个数组,找到数据库中不包含该数组数据的所有数据。本来是想用两个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); } }
该代码运用了数学中的容斥原理,用一句代码就可以得到结果了。