当前位置: 首页 > news >正文

【C#】List求并集、交集、差集

  1. 值类型List
            List<int> intList1 = new List<int>() { 1, 2, 3 };List<int> intList2 = new List<int>() { 3, 4, 5 };var result = intList1.Union(intList2);Console.WriteLine($"并 {string.Join(',',result)}");result = intList1.Intersect(intList2);Console.WriteLine($"交 {string.Join(',', result)}");result = intList1.Except(intList2);Console.WriteLine($"差 {string.Join(',', result)}");

结果:
在这里插入图片描述
2. 对象类型List

       List<Person> people = new List<Person>{new Person { Name = "Alice" },new Person { Name = "Bob" },new Person { Name = "Charlie" }};List<Person> people2 = new List<Person>{new Person { Name = "Alice" },new Person { Name = "Joan" }};var abc = people.Union(people2).ToList();Console.WriteLine($"并 { string.Join(',', abc.Select(s => s.Name))}");abc = people.Where(s => people2.Any(x => x.Name == s.Name)).ToList();Console.WriteLine($"Name交 {string.Join(',', abc.Select(s=>s.Name))}");abc = people.Where(s =>!  people2.Any(x => x.Name == s.Name)).ToList();Console.WriteLine($"Name差 {string.Join(',', abc.Select(s => s.Name))}");

结果
在这里插入图片描述
3. 对象类型的还可以利用LINQ 左连接求交集、差集

    var leftJoinQuery = from p in peoplejoin pp in people2 on p.Name equals pp.Name into tempfrom co in temp.DefaultIfEmpty()where co is not nullselect new { p.Name };Console.WriteLine($"Name交 {string.Join(',', leftJoinQuery.Select(s => s.Name))}");leftJoinQuery = from p in peoplejoin pp in people2 on p.Name equals pp.Name into tempfrom co in temp.DefaultIfEmpty()where co is null select new { p.Name };Console.WriteLine($"Name差 {string.Join(',', leftJoinQuery.Select(s => s.Name))}");

结果:
在这里插入图片描述

http://www.lryc.cn/news/506631.html

相关文章:

  • YOLOv8目标检测——详细记录使用ONNX Runtime进行推理部署C++/Python实现
  • mfc140u.dll是什么文件?如何解决mfc140u.dll丢失的相关问题
  • Redis篇-19--运维篇1-主从复制(主从复制,读写分离,配置实现,实战案例)
  • 【Elasticsearch入门到落地】4、Elasticsearch的安装
  • 计算无人机俯拍图像的地面采样距离(GSD)矩阵
  • 牛客网 SQL37查找多列排序
  • el-tabs标签过多
  • 如何制作搞笑配音视频?操作方法
  • [Unity]Unity跨平台开发之针对Android开发
  • ELK部署
  • ELK系列-(四)轻量级的日志收集助手-Beat家族
  • NodeJs-包管理工具
  • AWR microwave office 仿真学习(二)使用多层结构天线/超表面的S参数确定层间距
  • 【zlm】 webrtc源码讲解三(总结)
  • Springboot+Druid(可切换Hikari)+Mybatis-plus+mysql+hive的多数据源项目配置
  • Git使用步骤
  • Python+OpenCV系列:AI看图识人、识车、识万物
  • springboot449教学资源共享平台(论文+源码)_kaic
  • 类OCSP靶场-Kioptrix系列-Kioptrix Level 4
  • 贪心算法在背包问题上的运用(Python)
  • POD 存储、PV、PVC
  • C中strlen和sizeof的区别
  • WSL2内部的Ubuntu怎么设置网络内桥接模式,弄了好久老是不成功,怎么办?
  • Linux环境下 搭建ELk项目 -单机版练习
  • ubuntu20.04安装mysql5.7
  • MacPorts 安装 Tengine
  • Git安装及基础学习
  • 【celery】任务有时候不执行
  • 【恶意软件检测论文】通过提取 API 语义来实现的一个新颖的安卓恶意软件检测方法
  • 什么,不用 Tomcat 也能运行 Java web?