一、简单类型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. 用ChatGPT,快速设计一个真实的账号系统

    hi,我是熵减,见字如面. 用ChatGPT,可以尝试做很多的事情. 今天我们就来让ChatGPT做为架构师,来帮我们设计一个账号系统吧. 我的实验过程记录如下,与你分享. 用户故事 首先,我们从用户 ...

  2. CPU AMX 详解

    CPU AMX 详解 CPU AMX 详解 概述 算力如何 问题定义 AVX如何解决矩阵乘问题 AMX如何解决矩阵乘问题 如何实现的 计算部分 数据部分 路才开始 概述 2016 年开始,随着 NV ...

  3. pat乙级 1019 数字黑洞

    #include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> ...

  4. Vue项目安装less和less-loader

    第一步: 查看webpack和webpack-cli是否安装打开cmd,通过命令查看 webpack -v webpack-cli -v 如果没有安装,要先进行安装 可以通过 npm view web ...

  5. E-MU1212m(E-MU1616m)在Win10(Win11)中的驱动安装

    创新(Creative)公司早期生产的专业PCI声卡E-MU1212m及E-MU1616m当前二手市场上的性价比非常高,但由于生产年代久远,其驱动程序最高只支持到Windows vista版本,经过实 ...

  6. java学习日记20230226-java环境搭建及运行机制

    JDK安装 配置环境变量: 当执行的程序在当前目录不存在时,windows去系统path环境变量里面进行查找,如果没有找到报错不存在该命令. 我的电脑-属性-高级系统设置--环境变量 增加JAVA_H ...

  7. QT个人笔记

    1.QT的setCursor(Qt::CrossCursor) 干什么用 ui->View->setCursor(Qt::CrossCursor); setCursor函数用于设置窗口上的 ...

  8. 配置jupyter lab遇到 libffi.so.7缺失

    问题描述 使用 jupyter lab password 命令 配置jupyter 密码 报错 思路 去换一个conda环境 找到其lib内部的 libffi.so.7文件 解决方法 ln -s 其他 ...

  9. 看了这本基础教程的书籍你还担心你的python学不好吗?

    python基础教程(第二版)PDF高清版免费下载地址: 提取码:chcj 值得花时间阅读的一本书 内容简介  · · · · · · 本书是经典教程的全新改版,作者根据Python 3.0版本的种种 ...

  10. [UnityShader]说厌了的遮挡显示

    首先是效果 这个其实有相当多的地方在说了,我就不嚼舌根了 大概原理:一个Shader两个Pass,第一个Pass不管深度,都渲染,但是不写入深度,第二个Pass几乎没有改动,因为后执行,会覆盖掉第一个 ...