两个数组中取相同与不同数据

已知有两个数组
数组A string[] A={“abc”,“bcd”,“cde”,“def”}
数组B string[] B={“cde”,“def”,“efg”,“fgh”}

List list1 = new List(A);//将数组转换为集合
List list2 = new List(B);//将数组转换为集合

string[] array1 = list1.ToArray();//将集合转换为数组
string[] array2 = list2.ToArray();/将集合转换为数组

两个数组中不相同的数据
var example1 = Enumerable.Except(A.Union(B), A.Intersect(B)).ToList();
两个数组中取相同与不同数据

两个数组中同时存在的数据
var example2 = list1.Where(a => list2.Exists(t => a.Contains(t))).ToList();
两个数组中取相同与不同数据

在A数组中存在,B数组中不存在的数据
var example3 = list1.Where(a => !list2.Exists(t => a.Contains(t))).ToList();
两个数组中取相同与不同数据

在B数组中存在,A数组中不存在的数据
var example4 = list2.Where(a => !list1.Exists(t=> a.Contains(t))).ToList();
两个数组中取相同与不同数据