|
用循环用得多了,竟然忘记了数组里面用自己的交集并集和差集的方法。
//求字符串的差集 交集 并集
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();
|