代码改变世界

C# 交集、差集、并集、子集、真子集、集合元素是否全等

  古兆洋  阅读(92)  评论(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
复制代码

 

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2023-11-15 Asp.Net Core IIS发布后PUT、DELETE请求错误405.0 - Method Not Allowed
点击右上角即可分享
微信分享提示