c#最简易版求数组和datatable的并集交集差集

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-1 11:40   708   0

用循环用得多了,竟然忘记了数组里面用自己的交集并集和差集的方法。

//求字符串的差集 交集 并集
            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();


分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP