var source = new List<int>() { 1, 2, 3, 4 };
var target = new List<int>() { 1, 2, 3, 5};
var target1 = new List<int>() { 5 };
var target2 = new List<int>() { 1, 2, 3};
4
一、交集
1、需判断两个集合是否存在交集,则使用Hashset中的Overlaps方法
// 交集(source 与 targe是否有共同元素)
var result = source.ToHashSet().Overlaps(target); // true
var result1 = source.ToHashSet().Overlaps(target1); // false
2、需获取两个集合的交集,一般使用的Intersect方法
// 交集(A与B中的共同元素)
var result = source.Intersect(target); // {1,2,3}
二、差集(Except)
// 差集(A - B中的元素)
var result = source.Except(target); // {4}
var result1 = source.Except(target1); // {1,2,3,4}
三、并集(Union)
// 并集(A + B)
var result = source.Union(target); // {1,2,3,4,5}
四、子集(IsSubsetOf)
// 子集(A是B的子集合或者全等集合)
var result = target.ToHashSet().IsSubsetOf(source); // false
var result1 = target1.ToHashSet().IsSubsetOf(source); // false
var result2 = target2.ToHashSet().IsSubsetOf(source); // true
var result3 = source.ToHashSet().IsSubsetOf(source); // true
五、真子集(IsProperSubsetOf)
// 真子集(A是B的子集合)
var result = target.ToHashSet().IsProperSubsetOf(source); // false
var result1 = target1.ToHashSet().IsProperSubsetOf(source); // false
var result2 = target2.ToHashSet().IsProperSubsetOf(source); // true
var result3 = source.ToHashSet().IsProperSubsetOf(source); // false
六、集合是否全等(SetEquals)
// 只用于判断A与B中不存在重复元素
var result = source.ToHashSet().SetEquals(target); // false
var result1 = source.ToHashSet().SetEquals(source); // true