C# 交集、差集、并集、子集、真子集、集合元素是否全等
2024-11-15 11:44 古兆洋 阅读(6) 评论(0) 编辑 收藏 举报转自:https://www.cnblogs.com/elsons/p/17560538.html
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