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