1. 程式人生 > >c#最簡易版求陣列和datatable的並集交集差集

c#最簡易版求陣列和datatable的並集交集差集

用迴圈用得多了,竟然忘記了數組裡面用自己的交集並集和差集的方法。

//求字串的差集 交集 並集
            string text1 = "123 124 134 234";
            string text2 = "123 124 134 234  567 789 012";
            var arr1 = Regex.Split(text1, @"\s+");
            var arr2 = Regex.Split(text2, @"\s+");
            var arr3 = arr2.Except(arr1);//差集
            Console.WriteLine(string.Join(" ", arr3));
            var arr5 = arr2.Intersect(arr1);//交集
            Console.WriteLine(string.Join(" ", arr5));
            var arr6 = arr1.Union(arr2);//並集,重複資料不會顯示
            Console.WriteLine(string.Join(" ", arr6));


求datable的交集合集並集

 DataTable dt1=new DataTable();
            DataTable dt2 = new DataTable();
            InitDataTable1(dt1);
            InitDataTable2(dt2);
            IEnumerable<DataRow> queryExcept = dt1.AsEnumerable().Except(dt2.AsEnumerable(), DataRowComparer.Default);//差集
            IEnumerable<DataRow> queryUnion = dt1.AsEnumerable().Union(dt2.AsEnumerable(), DataRowComparer.Default);//並集
            IEnumerable<DataRow> queryIntersect = dt1.AsEnumerable().Intersect(dt2.AsEnumerable(), DataRowComparer.Default);//交集
            DataTable dt3 = queryExcept.CopyToDataTable();
            DataTable dt4 = queryUnion.CopyToDataTable();
            DataTable dt5 = queryIntersect.CopyToDataTable();