C# List间的交集并集差集
一、简单类型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间的交集并集差集的更多相关文章
- (java/javascript) list 交集 并集 差集 去重复并集
		java list 交集 并集 差集 去重复并集 package com; import java.util.ArrayList; import java.util.Iterator; import ... 
- Python 求两个文本文件以行为单位的交集 并集 差集
		Python 求两个文本文件以行为单位的交集 并集 差集,来代码: s1 = set(open('a.txt','r').readlines()) s2 = set(open('b.txt','r') ... 
- 如何求ArrayList集合的交集 并集 差集 去重复并集
		需要用到List接口中定义的几个方法: addAll(Collection<? extends E> c) :按指定集合的Iterator返回的顺序将指定集合中的所有元素追加到此列表的末尾 ... 
- spark之交集并集差集拉链
		spark之交集并集差集拉链 def main(args: Array[String]): Unit = { val sparkConf = new SparkConf().setMaster(&qu ... 
- java 两个list 交集 并集 差集 去重复并集
		前提需要明白List是引用类型,引用类型采用引用传递. 我们经常会遇到一些需求求集合的交集.差集.并集.例如下面两个集合: List<String> list1 = new ArrayLi ... 
- java list 交集 并集 差集 去重复并集
		package com; import java.util.ArrayList;import java.util.Iterator;import java.util.List; public clas ... 
- js Array 交集 并集 差集 去重
		最劲项目需要用到js数组去重和交集的一些运算,我的数组元素个数可能到达1000以上,网上的实现方式都是2次循环,性能不适合我的需求,1000*1000那循环次数太多了,所以我这里采用对象object来 ... 
- Oracle集合运算符 交集 并集 差集
		集合运算符:UNION/UNION ALL 并集,INTERSECT 交集,MINUS 差集 一.union求并集,公共部分只有包含一次 例:求emp表ename中含’A‘或含有‘M’ SQL&g ... 
- SQL求 交集 并集 差集
		故事是这样的….. 故事情节: 表 tb_test 有两列, colA , colB; 求 colA , colB 的并交差集… -- 计算并集 SELECT DISTINCT colB FROM t ... 
- oracle交集,并集,差集
		引自:http://www.2cto.com/database/201308/238777.html [sql] create table test1 ( name ), NN ) ); insert ... 
随机推荐
- JZOJ 5460. 士兵训练
			题目 \(1\le n,q \le 2\cdot {10}^5,0\le b_i,l_i \le {10}^9,b_i \ge 1,1 \le S_i \le n\) \(Solution\) 这题很 ... 
- JZOJ 1090. 【SDOI2009】晨跑
			题目 略,luogu上有 解析 一眼费用流 然而怎么建图? 首先我们要挖掘题中的限制条件和性质 一个点只能经过一次 能走的天数最长 满足第二条的条件下走过的路程最短 那么显然是最小费用最大流了 对于后 ... 
- 第24周SDAI缓解能否预测远期RA骨破坏受抑制
			第24周SDAI缓解能否预测远期RA骨破坏受抑制 Hirano F, et al. EULAR 2015. Present ID:THU0085. 原文 译文 THU0085 SDAI REMISSI ... 
- css3自动滚动
			<!DOCTYPE html> <html lang="en"><div class="wrap"> <ul clas ... 
- Postgresql动态共享内存类型
			一.简介 linux为多个进程通信提供了不同的IPC机制,如:System V , POSIX 和 MMAP,所以Postgresql共享内存管理也支持以上类型. 在Postgresql中可以使用dy ... 
- layui级联操作
			<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <link re ... 
- getUserInfo和getUserProfile被废弃
			之前得知获取用户头像和昵称的两个接口getUserInfo和getUserProfile被废弃了,于是我就想深入探究一下. 一直抱有一个疑问,为啥有getUserInfo和getUserProfile ... 
- 使用oledb读写excel出现“操作必须使用一个可更新的查询”的解决办法
			使用oledb读写excel出现"操作必须使用一个可更新的查询"的解决办法 转自:http://www.cnblogs.com/Richinger/archive/2008/09/ ... 
- Java面向对象之封装详解
			封装详解 封装 该露的露,该藏的藏 1.我们程序设计要追求"高内聚.低耦合".高内聚:类的内部数据操作细节自己完成,不允许外部干涉:低耦合:仅暴露少量的方法给外部使用. 封装(数据 ... 
- 单元测试成神之路——Golang篇
			这位大佬写的太好了 https://zhangyuyu.github.io/golang-unit-test/ 
