c#最簡易版求陣列和datatable的並集交集差集
阿新 • • 發佈:2019-02-04
用迴圈用得多了,竟然忘記了數組裡面用自己的交集並集和差集的方法。
//求字串的差集 交集 並集 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();