C#比较两个list集合,两集合同时存在或A集合存在B集合中无

2023-11-19

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace Sample3
{
    class Program
    {
        static void Main(string[] args)
        {
            var student1 = new List<student>();
            student1.Add(new student() { name = "张三", subject = "英语", score = 89 });
            student1.Add(new student() { name = "李四", subject = "英语", score = 95 });
            student1.Add(new student() { name = "王五", subject = "英语", score = 69 });
            student1.Add(new student() { name = "李倩", subject = "英语", score = 99 });

            var student2 = new List<student>();
            student2.Add(new student() { name = "李四", subject = "英语", score = 95 });
            student2.Add(new student() { name = "王五", subject = "数学", score = 69 });
            student2.Add(new student() { name = "赵六", subject = "数学", score = 100 });

            //var exp1 = student1.Where(a => student2.Any(t => a.name.Contains(t.name))).ToList();
            //使用Exists同样可以实现 字面上应该更好理解,而且效率要高些
            var exp1 = student1.Where(a => student2.Exists(t => a.name.Contains(t.name))).ToList();
            Console.WriteLine("--查找student1和student2总同时存在的数据--");
            foreach (var item in exp1)
            {
                Console.WriteLine("{0} \t {1} \t {2}", item.name, item.subject, item.score);
            }

            //var exp2 = student1.Where(a => student2.All(t => !a.name.Contains(t.name))).ToList();  
            //使用Exists同样可以实现 字面上应该更好理解,而且效率要高些
            var exp2 = student1.Where(a => !student2.Exists(t => a.name.Contains(t.name))).ToList();
            Console.WriteLine("--查找student1集合中存在,而student2不存在的数据--");
            foreach (var item in exp2)
            {
                Console.WriteLine("{0} \t {1} \t {2}", item.name, item.subject, item.score);
            }
            Console.Read();

            /*
                --查找student1和student2总同时存在的数据--
                李四     英语    95
                王五     英语    69
                --查找student1集合中存在,而student2不存在的数据--
                张三     英语    89
                李倩     英语    99 
             */
        }
    }

    public class student
    {
        /// <summary>  
        /// 姓名  
        /// </summary>  
        public string name;
        /// <summary>  
        /// 科目  
        /// </summary>  
        public string subject;
        /// <summary>  
        /// 分数  
        /// </summary>  
        public int score;
    }  
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C#比较两个list集合,两集合同时存在或A集合存在B集合中无 的相关文章

  • 二、EulerOS 基础命令行

    一 Linux命令基础知识 1 1 Linux的 GUI 与 CLI GUI Graphical User Interface 图形用户界面 用户界面的所有元素图形化 主要使用鼠标作为输入工具 使用按钮 菜单 对话框等进行交互 追求易用 C
  • vue3页面跳转

    vue3的页面跳转有两种方式 第一种是标签内跳转 第二种是编程式路由导航 1
  • Hadoop全集1-Hadoop简介

    Hadoop全集1 Hadoop简介 文章目录 Hadoop全集1 Hadoop简介 前言 一 Hadoop是什么 二 Hadoop的优势 三 Hadoop的组成 1 HDFS 2 MapReduce 3 Yarn 小结 前言 大数据时代
  • ffplay 播放m3u8 hls Failed to open segment of playlist 0

    用ffplay 播放m3u8文件 出现 Failed to open segment of playlist 0 Error when loading first segment test0 ts 错误 同样的文件用VLC播放正常 经过一番
  • Arcgis报错 ERROR 999999的解决方法汇总

    针对ERROR999999 官方给出的解决方案 1 修复几何 2 检查命名 3 检查创建输出位置的权限 4 大数据集分割处理 5 输出路径过长 6 以管理员模式运行 7 修改空数据属性 8 清除默认临时目录并重启程序 附方案地址 https
  • AD 封装组件的水平/垂直间距报错

    快捷键 D设计 R规则 一般情况下设置的都是 Electrical 下的Clearance 但是设置完了还是继续报错 是封装之间的水平间距问题 应该设置Placement 下的ComponentClearance
  • Nacos 1.4.1注册中心源码深度解析-服务下线

    服务下线比较简单 入口在com alibaba nacos naming controllers InstanceController deregister gt serviceManager removeInstance gt remov
  • Linux,Network manager 导致节点异常重启

    推断是Network manager 导致的 原因待查今天在VmWare的虚拟机上装了个测试RAC 又遇到了一个摸不到头绪的问题CRS装好后 一旦登陆图形界面 节点就重启 事情就有这么巧不登陆图形界面 观察了1个小时没问题 一旦登陆后 立刻
  • 微信JS-SDK获取signature签名以及config配置(微信转发分享页面需要)

    Js代码 wx config debug true 开启调试模式 调用的所有api的返回值会在客户端alert出来 若要查看传入的参数 可以在pc端打开 参数信息会通过log打出 仅在pc端时才会打印 appId 必填 公众号的唯一标识 t
  • 互斥锁(mutex)

    Linux中提供一把互斥锁mutex 也称之为互斥量 每个线程在对资源操作前都尝试先加锁 成功加锁才能操作 操作结束解锁 但通过 锁 就将资源的访问变成互斥操作 而后与时间有关的错误也不会再产生了 但 应注意 同一时刻 只能有一个线程持有该
  • 关于DC综合的随笔记录

    1 DC综合的常用命令 DC综合 常用命令 时钟树上的小猴子的博客 CSDN博客 dc综合命令文章目录DC文件转换 lib gt db展平网表读入 vhdl文件使用typical库面积约束其他命令DC文件转换 lib gt dbread l
  • 基于深度学习的人脸识别算法

    基于深度学习的人脸识别算法 简介 Contrastive Loss Triplet Loss Center Loss A Softmax Loss 参考文献 简介 我们经常能从电影中看到各种神奇的人脸识别技术 例如图1 人脸识别技术是基于面
  • 前端面试的性能优化部分(3)每天10个小知识点

    目录 系列文章目录 前端面试的性能优化部分 1 每天10个小知识点 前端面试的性能优化部分 2 每天10个小知识点 前端面试的性能优化部分 3 每天10个小知识点 前端面试的性能优化部分 4 每天10个小知识点 前端面试的性能优化部分 5
  • java复制文件后保持文件的创建时间不变

    复制后保持文件的创建时间不变 File oldFile new File E test old png File newFile new File E test new png FileCopyUtils copy oldFile newF
  • 【JAVA

    package learn import javax swing public class SimpleTable JFrame jf new JFrame 简单表格 String titles 姓名 性别 职业 String data 李
  • C语言数据变量

    1 变量的创建 上篇文章我们了解清楚了数据的类型 我们使 类型做什么呢 在C语言中 变量的创建包括变量的声明和变量的定义 变量的声明是指在程序中说明变量的存在 告诉编译器变量的类型和名称 变量的声明通常放在函数的头部或全局变量的前面 例如

随机推荐

  • 算法,16瓶水,有一瓶有毒,假设一只小白鼠喝一滴水,一个小时后会死亡,一个小时找出那瓶有毒的水至少需要几只小白鼠?

    首先16瓶水 编号0000 0001 1110 1111 然后让第一只小白鼠喝最低位为1的水 第二只小白鼠喝次最低位为1的水 第三只小白鼠喝第三位为1的水 第四只小白鼠喝最高位为1的水 一个小时后看小白鼠的存活状态 若小白鼠全活则0000
  • 找出通过车辆最多颜色(90%用例)

    在一个狭小的路口 每秒只能通过一辆车 假如车辆的颜色只有3种 找出N秒内经过的最多颜色的车辆数量 三种颜色编号为0 1 2 输入描述 第一行输入的是通过的车辆颜色信息 0 1 1 2 代表4秒钟通过的车辆颜色分别是0 1 1 2 第二行输入
  • COCOS2DX学习之Box2D物理引擎-------物体和相互作用

    1 创建一个静态物体 创建一个静态物体应该很简单 在头文件生命一下要创建新物体的函数 然后在cpp文件中实现它即可 具体的时候先过程 首先要用createbody函数创建一个物体 然后定义一个b2bodydef变量 指定一下这个变量的typ
  • 游戏开发unity编辑器扩展知识系列:修改纹理资源的TextureType

    需要用TextureImporter导入资源 调用如下代码 TextureImporter importer TextureImporter TextureImporter GetAtPath path importer textureTy
  • ADC 读取电位器旋钮,用回差消除临界值档位跳动

    就是比如 用电位器当旋钮做风扇调速 划分出10 个速度档位 对应10 个ADC 转换结果的阈值 如果直接比较阈值 当旋钮拧到临近阈值的地方时 ADC 结果的微小跳动会导致风扇档位在两个级别之间不停左右横跳 因此想到了利用回差来消除抖动 回差
  • Pycharm官网下载安装

    下载链接 pycharm官网 https www jetbrains com pycharm 然后来到这个界面 点击Download 下载按钮 然后点击开源版本 Community 下载安装就好了 接下来就创建项目 点击Create 这样就
  • FISCO BCOS 2.0新特性解读

    FISCO BCOS是完全开源的联盟区块链底层技术平台 由金融区块链合作联盟 深圳 简称金链盟 成立开源工作组通力打造 开源工作组成员包括博彦科技 华为 深证通 神州数码 四方精创 腾讯 微众银行 亦笔科技和越秀金科等金链盟成员机构 代码仓
  • Nacos、ZooKeeper和Dubbo的区别

    Nacos ZooKeeper和Dubbo是三个不同的分布式系统组件 它们之间有以下几点区别 功能定位 Nacos主要提供服务发现 配置管理和服务治理等功能 而ZooKeeper主要是分布式协调服务 提供了分布式锁 分布式队列等原语 Dub
  • 本地部署LLaMA-中文LoRA部署详细说明

    在Ubuntu18 04 部署中文LLaMA模型 环境准备 硬件环境 AMD 5950X 128GB RAM RTX 3090 24G VRAM 操作系统 Ubuntu 18 04 编译环境 可选 llama cpp 编译 cd llama
  • GoJS学习

    简介 GoJS是一个可视化JavaScript库 用于浏览器中创建交互图形 比如流程图 树图 关系图 力导图等等 GoJS不依赖于任何JS库或框架 例如bootstrap jquery等 可与任何HTML或JS框架配合工作 甚至可以不用框架
  • Cuda 代码中的 函数前缀 device global host 使用

    众所周知 CUDA并行可以使代码加速很多倍 其文件类型为 cu 结尾 在编写cu 文件时 常用的函数前缀关键字有 device global host host C或者C 中相同 是由CPU调用 由CPU执行的函数 global 表示一个内
  • 为啥国内互联网公司都用centos而不是ubuntu?

    一直以来都很好奇ubuntu和centos有啥区别 上学时接触的都是ubuntu 自己每次装virtual box的时候都会下个ubuntu 但是公司的服务器上装的都是centos 今天查了下知乎网友的精彩回答 呵呵 简单总结下主要有几个原
  • 解释执行与编译执行语言有什么区别?

    一 主体不同 1 编译执行 由编译程序将目标代码一次性编译成目标程序 再由机器运行目标程序 2 解释执行 将源语言直接作为源程序输入 解释执行 解释一句后就提交计算机执行一句 并不形成目标程序 二 优势不同 1 编译执行 相比解释执行编译执
  • 常用的偏微分方程

    偏微分方程通常包含两个以上的自变量 若自变量同时间相关 或者无关 称其为发展型 或者稳态 的 下面 我们罗列出一些典型的偏微分方程 如 热传导方程 一阶双曲守恒律方程 二阶波动方程 椭圆型偏微分方程等 抛物型偏微分方程通常刻画 个物理系统的
  • 前端学科面试题大全

    作用域和值类型引用类型的传递 变量作用域 作用域变量访问区域 变量值存在栈中 变量赋值相当于值赋值 值传递与引用传递有哪些区别 函数内部 变量会先声明 形式参数变量声明提升 整个函数体有var声明的变量 如果没有访问全局定义的num2 函数
  • 服务器环境初始化配置

    工程实践经验积累 服务器环境初始化配置 1 新建环境 新建环境 是为了使自己的程序在一个相对独立的环境中运行 不影响服务器上其他用户 并不受其他用户影响 新建环境的语句为 conda create n your env name pytho
  • 【Unity Shader】屏幕后处理1.0:调整亮度/饱和度/对比度

    1 Unity中实现屏幕特效的基本步骤 什么叫屏幕后处理 Screen post processing effects 渲染完整个场景得到屏幕图像后对图像进行一系列操作 实现各种屏幕特效 这一步我们可以添加很多例如景深 Depth of F
  • session销毁

    session invalidate session invalidate的销毁是把这个session所带的用户彻底的销毁 这个session跟用户已经紧密联合在一起 所以就一起销毁了 这样就算换了个session 也是登陆不了的 以前我的
  • 设计模式之享元模式

    享元模式 就是共享技术 对于系统中存在大量相同的对象 把他们抽取成一个对象放在缓存中进行使用 这样可以大大节省系统资源 例如 围棋棋盘上有两种棋子 一个是黑子 一个是白子 如果在下棋的时候每下一个棋子就要new一个棋子对象 那么就会有大量的
  • C#比较两个list集合,两集合同时存在或A集合存在B集合中无

    using System using System Collections Generic using System Linq using System Text using System Threading using System Th