C# 对List<T>取交集、连集及差集
1. 取交集
List A :{1,5,9,3,7}
List B:{1,6,8,5,3,2,9,4}
var intersectedList = listA.Intersect(listB, newButtonsListEquality());
结果:{1,3,9}
2.取连集
List A :{,,,}
List B:{,,,,}
var bingji = ListA.Union(ListB, new ButtonsListEquality()).ToList();//并(全)集
结果:{1,2,3,5,6,7,8,9}
3.取差集
List A :{,,,,,}
List B:{,,,,}
var chaji = ListA.Except(ListB, new ButtonsListEquality()).ToList();//差集
结果:{1,2,3,4,7,8,9}
辅助类:
public class ButtonsListEquality : IEqualityComparer<SysButtons>
{
public bool Equals(SysButtons x, SysButtons y)
{
return x.Id == y.Id;
} public int GetHashCode(SysButtons obj)
{
if (obj == null)
{
return ;
}
else
{
return obj.ToString().GetHashCode();
}
}
}
C# 对List<T>取交集、连集及差集的更多相关文章
- [转][C#] 对List<T>取交集、连集及差集
本文转自:http://www.cnblogs.com/shuibin/archive/2012/04/19/2457867.html 最近在專案中,剛好遇到這個需求, 需要比對兩個List,進行一些 ...
- 俄罗斯水手 [C#] 对List<T>取交集、连集及差集
※本文使用int為例,若為使用自訂之DataModel,需實作IEquatable<T>介面才能使用 1. 取交集 (A和B都有) List A : { 1 , 2 , 3 , 5 , ...
- List<T>取交集、差集、并集
1. 取交集 (A和B都有) List A : { 1 , 2 , 3 , 5 , 9 }List B : { 4 , 3 , 9 }var intersectedList = list1.Inte ...
- sql server中取交集、差集和并集的语法
这里简单总结下在SQL Server中取交集.差集和并集的语法. 交集:INTERSECT(适用于两个结果集) SELECT ID, NAME FROM YANGGB1 INTERSECT SELEC ...
- 一个JS多个数组取交集算法
如题,多个数组中取交集(共同拥有元素),思路取第一个数组去跟每个数组中的元素对比,同时比较数据类型有救返回没有就返回null. 下面介绍到的算法数据格式是二维数组如: const parentArra ...
- iOS 数组集合操作(交集,并集,差集,子集)
1.求数组的 交集,并集,差集 NSArray *array1 = @[@"1",@"2",@"3"]; NSArray *array2 = ...
- 用Linq取两个数组的差集
两个数组,取其差集,用Linq做比较方便,效率也比较高,具体如下示例 有两个数组list1 和list2 ,如下 List<int> list1 = new List<int> ...
- JS数组操作:去重,交集,并集,差集
原文:JS数组操作:去重,交集,并集,差集 1. 数组去重 方法一: function unique(arr) { //定义常量 res,值为一个Map对象实例 const res = new Map ...
- sqlserver查询(子查询,全连接,等值连接,自然连接,左右连,交集,并集,差集)
--部门表 create table dept( deptno int primary key,--部门编号 dname ),--部门名 loc )--地址 ); --雇员表 create table ...
随机推荐
- ajax 另外两种返回类型(json xml)
返回json类型(例子): <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http ...
- CentOS 7 安装、配置、使用 PostgreSQL 9.5及PostGIS2.2
学习CentOS下安装使用PostgreSQL [安装过程] 1.添加RPM yum install https://download.postgresql.org/pub/repos/yum/ ...
- wifipineapple使用教程
1.把开关拨到右边 如果有灯亮说明有电 4个灯全亮说明电量是满的 以此类推 如果一个也不亮说明没电了需要用充电器充电 2.把开关拨到左边打开wifi的开关 会开启一个wifi大概一分钟左右会有wif ...
- 利用backtrace和objdump进行分析挂掉的程序
转自:http://blog.csdn.net/hanchaoman/article/details/5583457 汇编不懂,先把方法记下来. glibc为我们提供了此类能够dump栈内容的函数簇, ...
- 深入浅出设计模式——抽象工厂模式(Abstract Factory)
模式动机在工厂方法模式中具体工厂负责生产具体的产品,每一个具体工厂对应一种具体产品,工厂方法也具有唯一性,一般情况下,一个具体工厂中只有一个工厂方法或者一组重载的工厂方法.但是有时候我们需要一个工厂可 ...
- 关于实现自定义Dialog和实现Dialog里view的事件监听的两种方法
一.自定义dialog. 二.实现dialog里view的事件监听 1.自定义dialog比较简单.在实例化new的时候,加入样式,布局就行了.或者重写dialog. 2.实现dialog里view的 ...
- Knockout 新版应用开发教程之创建view models与监控属性
最近抽出点时间研究MVVM,包括司徒正美的avalon,google的angular,以及Knockout,博客园Tom的Knockout指南 时隔2年了,ko更新了不少,所以文档也相应的变化了,所以 ...
- ReactiveCocoa信号使用方法
最近研究RAC时都是基于UI控件来使用,对单独的signal没有使用过,最近在网上看到一篇文章是关于RAC单独signal的使用.在学习整理后将个人觉得能帮助用于UI控件的一些signal使用方法记录 ...
- 基于gulp 的前端自动化构建方案总结
一,基础篇 先安装nodejs 使用淘宝镜像安装tnpm 安装 cnpm 插件:npm install -g cnpm --registry=https://registry.npm.taobao.o ...
- 【Asp.net之旅】--数据绑定控件之Repeater
http://blog.csdn.net/zhang_xinxiu/article/details/21872433