一、简单类型List的交集并集差集

1、先定义两个简单类型的List

List<int> listA = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8 };
List<int> listB = new List<int>() { 1, 2, 3, 4, 9 };

2、取两个List的并集

var resultUnionList= listA.Union(listB).ToList();

执行结果如下:1, 2, 3, 4, 5, 6, 7, 8, 9

3、取两个List的交集

var resultIntersectList = listA.Intersect(listB);

执行结果如下:1, 2, 3, 4

4、取两个List的差集,差集是指取在该集合中而不在另一集合中的所有的项

var resultExceptList = listA.Except(listB);

执行结果如下:5, 6, 7, 8

二、对象List集合的交集并集差集

1、先定义一个类

//学生类
public class Student
{
public string Name { get; set; }
public int Age { get; set; }
public string Sex { get; set; }
}

2、定义两个List

//LISTA
List<Student> stuListA = new List<Student>();
stuListA.Add(new Student
{
Name = "A1",
Age = 10,
Sex = "男"
});
stuListA.Add(new Student
{
Name = "A2",
Age = 11,
Sex = "男"
}); //LISTB
List<Student> stuListB = new List<Student>();
stuListB.Add(new Student
{
Name = "B1",
Age = 10,
Sex = "女"
});
stuListB.Add(new Student
{
Name = "B2",
Age = 11,
Sex = "男"
});

3、取上述两个list集合的并集

var result = stuListA.Union(stuListB).ToList();

4、取上述两个list集合的交集,应为是对象集合,可以根据一定规则 Func<TSource, bool> predicate限定那些属于交集

  (1)取两个对象集合中对象名称一样的交集

var result = stuListA.Where(x => stuListB.Any(e => e.Name == x.Name)).ToList();

  

  (2)取两个对象集合中对象名称、对象年龄、对象性别都一样的交集

var result = stuListA.Where(x => stuListB.Any(e => e.Name == x.Name && e.Age == x.Age && e.Sex == x.Sex)).ToList();

5、取上述两个list集合的差集,可以根据一定规则 Func<TSource, bool> predicate限定那些属于差集

  (1)取差集,根据两个对象集合中对象名称一样的规则取差集

var result = stuListA.Where(x =>! stuListB.Any(e => e.Name == x.Name)).ToList();

  (2)取差集,根据两个对象集合中对象名称、对象年龄、对象性别都一样的规则取差集

var result = stuListA.Where(x => !stuListB.Any(e => e.Name == x.Name && e.Age == x.Age && e.Sex == x.Sex)).ToList();

C# List间的交集并集差集的更多相关文章

  1. (java/javascript) list 交集 并集 差集 去重复并集

    java list 交集 并集 差集 去重复并集 package com; import java.util.ArrayList; import java.util.Iterator; import ...

  2. Python 求两个文本文件以行为单位的交集 并集 差集

    Python 求两个文本文件以行为单位的交集 并集 差集,来代码: s1 = set(open('a.txt','r').readlines()) s2 = set(open('b.txt','r') ...

  3. 如何求ArrayList集合的交集 并集 差集 去重复并集

    需要用到List接口中定义的几个方法: addAll(Collection<? extends E> c) :按指定集合的Iterator返回的顺序将指定集合中的所有元素追加到此列表的末尾 ...

  4. spark之交集并集差集拉链

    spark之交集并集差集拉链 def main(args: Array[String]): Unit = { val sparkConf = new SparkConf().setMaster(&qu ...

  5. java 两个list 交集 并集 差集 去重复并集

    前提需要明白List是引用类型,引用类型采用引用传递. 我们经常会遇到一些需求求集合的交集.差集.并集.例如下面两个集合: List<String> list1 = new ArrayLi ...

  6. java list 交集 并集 差集 去重复并集

    package com; import java.util.ArrayList;import java.util.Iterator;import java.util.List; public clas ...

  7. js Array 交集 并集 差集 去重

    最劲项目需要用到js数组去重和交集的一些运算,我的数组元素个数可能到达1000以上,网上的实现方式都是2次循环,性能不适合我的需求,1000*1000那循环次数太多了,所以我这里采用对象object来 ...

  8. Oracle集合运算符 交集 并集 差集

     集合运算符:UNION/UNION ALL 并集,INTERSECT 交集,MINUS 差集  一.union求并集,公共部分只有包含一次 例:求emp表ename中含’A‘或含有‘M’ SQL&g ...

  9. SQL求 交集 并集 差集

    故事是这样的….. 故事情节: 表 tb_test 有两列, colA , colB; 求 colA , colB 的并交差集… -- 计算并集 SELECT DISTINCT colB FROM t ...

  10. oracle交集,并集,差集

    引自:http://www.2cto.com/database/201308/238777.html [sql] create table test1 ( name ), NN ) ); insert ...

随机推荐

  1. JZOJ 5343. 【NOIP2017模拟9.3A组】健美猫

    题面 其中 \(1 \leq n \leq 2 \times 10^6\) 分析 考虑每次移动,发现负数对答案贡献少 \(1\),非负数多 \(1\) 每次移动都加了 \(1\) 负数变非负数关键点在 ...

  2. AIR32F103(九) CAN总线的通信和ID过滤机制及实例

    目录 AIR32F103(一) 合宙AIR32F103CBT6开发板上手报告 AIR32F103(二) Linux环境和LibOpenCM3项目模板 AIR32F103(三) Linux环境基于标准外 ...

  3. RocketMQ - 消费者Rebalance机制

    客户端是通过Rebalance服务做到高可靠的.当发生Broker掉线.消费者实例掉线.Topic 扩容等各种突发情况时,消费者组中的消费者实例是怎么重平衡,以支持全部队列的正常消费的呢? Rebal ...

  4. CF1137F Matches Are Not a Child's Play 题解

    以最后被删去的点为根,这样子不会存在从父亲然后删掉某个点,儿子的删除顺序一定比父亲前. 记每个点子树中的最大值为 \(f_x\),那么一个点的排名,首先就需要加上 \(<f_x\) 的所有值,记 ...

  5. WPF里面触发器

    WPF中有种叫做触发器的东西(记住不是数据库的trigger哦).它的主要作用是根据trigger的不同条件来自动更改外观属性,或者执行动画等操作. WPFtrigger的主要类型有:Trigger. ...

  6. 关于服务器上的XML

    服务器上的 XML XML 文件是类似 HTML 文件的纯文本文件. XML 能够通过标准的 Web 服务器轻松地存储和生成. 在服务器上存储 XML 文件 XML 文件在 Internet 服务器上 ...

  7. ACE下载地址

    https://download.dre.vanderbilt.edu/previous_versions/ 在某n中找了大半天愣是没人贴出来

  8. PHP中的超级变量

    超级变量,又名超级全局变量,是PHP内置的变量,这些变量在代码的任意位置都能正常使用 PHP中的超级变量 9种超级变量 $GLOBALS $_SERVER 9种超级变量 目前,PHP提供了9种超级变量 ...

  9. 找出一组数中出现次数最多的数(csp201312-1)

    问题描述:找出一组数字出现次数最多的数,如果有多个这样的数,输出其中最小的一个. 算法:sort排序,遍历数组,每遍历一个数,查出它已经出现的次数. 代码: #include<bits/stdc ...

  10. SQLServer中使用between查询日期

    SQL Server中字段是Datetime型 以" YYYY-MM-DD 00:00:00" 存放的 between and是包括边界值的,not between不包括边界值,不 ...