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 ...
随机推荐
- 使用IDM从Google 云端硬盘链接上下载超大文件
1.将原始文件以快捷方式存放到自己的网盘中. 2.进入自己的网盘,找到存放好的目标文件快捷方式,点击右键,选择下载. 3.如果电脑上IDM且浏览器装有IDM插件,会弹出下载框,点击下载即可. 4.然后 ...
- 内网安全之:黄金&白银票据传递域控制器权限维持
内网安全之:黄金&白银票据传递域控制器权限维持 目录 内网安全之:黄金&白银票据传递域控制器权限维持 1 Golden Ticket 1.1 导出 krbtgt 的 NTLM Hash ...
- [EULAR文摘] 脊柱放射学持续进展是否显著影响关节功能
脊柱放射学持续进展是否显著影响关节功能 Poddubnyy D, et al. EULAR 2015. Present ID: THU0199. 背景: 强直性脊柱炎(AS)患者的机体功能和脊柱活动性 ...
- c# 游戏设计:地图移动
想实现一个小游戏,先做地图移动.步骤记录如下: 1.百度到一张大的迷宫地图,放在项目的debug目录下,备用. 2.创建一个winform项目,不添加任何界面元素. 3.添加数据成员如下: Pictu ...
- PHP常见方法封装
1.get请求 function get_curl($url, $timeout = 5) { $ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$url) ...
- seql sever INSERT语句简介
INSERT语句简介 要向表中添加一行或多行,可以使用INSERT语句.下面说明了INSERT语句的最基本形式: INSERT INTO table_name (column_list) VA ...
- Android图表控件MPAndroidChart——BarChart实现多列柱状图和LineChart多曲线 (完结)
首先才接触Android,目前自学一个月,花了一星期,做出了柱状图和曲线图,踩过坑也不少,上代码(主要提供思路,大部分代码可直接用). 参考代码地址:①曲线:https://blog.csdn.net ...
- 面试不愁,给你一份SpringBoot常用注解
一.注解(annotations)列表 @SpringBootApplication: 包含了@ComponentScan.@Configuration和@EnableAutoConfiguratio ...
- 如何用adb连接android手机
如何用adb连接android手机 以下为手机"root"情况下操作....手机没root请拉到笔记最后,有解决方法 利用adb来连接手机, 有两种方式: wifi usb 通过w ...
- VUE+Element+若依随笔001:点击左侧菜单跳转外部链接配置并传参数
一.后台菜单配置部分:1.菜单管理中:新增父级目录2.配置内容: 菜单名称:测试用菜单 菜单路径:https://www.baidu.com/ 此处需要配置要跳转你的外部链接 组件名称:testMen ...