※本文使用int為例,若為使用自訂之DataModel,需實作IEquatable<T>介面才能使用

1.  取交集 (A和B都有)

List A : { 1 , 2 , 3 , 5 , 9 }

List B : { 4 , 3 , 9 }

1 var intersectedList = list1.Intersect(list2);

結果 : { 3 , 9 }

判斷A和B是否有交集

1 bool isIntersected = list1.Intersect(list2).Count() > 0

2. 取差集 (A有,B沒有)

List A : { 1 , 2 , 3 , 5 , 9 }

List B : { 4 , 3 , 9 }

1 var expectedList = list1.Except(list2);

結果 : { 1 , 2 , 5 }

判斷A和B是否有差集

1 bool isExpected = list1.Expect(list2).Count() > 0

3.  取聯集 (包含A和B)

List A : { 1 , 2 , 3 , 5 , 9 }

List B : { 4 , 3 , 9 }

01 public static class ListExtensions
02 {
03     public static List<T> Merge<T>(this List<T> source, List<T> target)
04     {
05         List<T> mergedList = new List<T>(source);
06  
07         mergedList.AddRange(target.Except(source));
08  
09         return mergedList;
10     }   
11 }
1 var mergedList = list1.Merge(list2);

結果 : { 1 , 2 , 3 , 5 ,9 , 4 }

※ 6/15補充:感謝蹂躪大大提醒,LinQ已有內建方法Union可取聯集囉!

最新文章

  1. Get a developer license for windows store app
  2. Linux shell实现Mysql异地备份数据库
  3. iOS开发--沙盒路径与操作文件
  4. word wrap 解惑
  5. jquery动态添加列表后样式失效解决方式
  6. HTML技术简介
  7. asp.net上传控件使用
  8. 3-08. 栈模拟队列(25)(ZJU_PAT 模拟)
  9. XAMPP on Mac 组态 Virual Host
  10. macOS 中的 Rootless 机制
  11. VMware安装时Error 1324. The path My Documents contains a invalid character的原因和解决方法
  12. 左偏树(BZOJ4003)
  13. awesome资源包
  14. 每天一个Linux命令(05):tail命令
  15. SolrCore Initialization Failures - Max direct memory is likely too low
  16. DXP中插入LOGO图片方法(1)
  17. Windows 7硬盘安装CentOS 6.4 双系统 (WIN7下硬盘安装Linux(Fedora 16,CentOS 6.2,Ubuntu 12.04))
  18. Linux命令_用户身份切换
  19. Spring MVC 运行流程图
  20. arm家族小检阅

热门文章

  1. Android消息总线的演进之路:用LiveDataBus替代RxBus、EventBus
  2. Java反射在Android中的使用
  3. 1004 Counting Leaves (30)(30 point(s))
  4. ONVIF开发实例
  5. 【BZOJ 2986】 莫比乌斯函数+容斥原理
  6. python编程之socket编程基础
  7. SpringBoot静态资源目录
  8. 216. 组合总和 III
  9. 原生JS实现一个简单的前端路由(原理)
  10. Python学习笔记(五)—列表的学习