有一個需求,服務器根據客戶端傳過來的一個數組,找到數據庫中不包含該數組數據的所有數據。本來是想用兩個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); } }
該代碼運用了數學中的容斥原理,用一句代碼就可以得到結果了。