首页 > 编程语言 >C# List的便捷使用获取交集、差集与并集

C# List的便捷使用获取交集、差集与并集

时间:2024-09-30 15:15:32浏览次数:1  
标签:C# list1 List System 差集 列表 new list2

前言

  在C#中,我们有时会需要对两个数据列表进行一些数据的提取、对比之类的特殊操作,此时我们就可以借助 System.Linq 进行快速操作。

  我们可以使用 System.Linq(Language Integrated Query)来方便地对List<T>进行交集、差集和并集的操作

 

1.并集 - Union

  并集可以快速获取两个 List 列表中所有不重复的元素的新列表

// using System.Linq;
 
List<int> list1 = new List<int> { 1, 2, 3, 4 };
List<int> list2 = new List<int> { 3, 4, 5, 6 };
 
var union = list1.Union(list2).ToList();
// union = new List<int>{ 1, 2, 5, 6};

 

2.交集 - Intersect

  交集可以快速获取到两个 List  列表中重复的元素的新列表

// using System.Linq;
 
List<int> list1 = new List<int> { 1, 2, 3, 4 };
List<int> list2 = new List<int> { 3, 4, 5, 6 };
 
var intersect= list1.Intersect(list2).ToList();
// intersect = new List<int>{ 3, 4};

 

3.差集 - Except

  差集会有所特殊,它对应的为从一个列表本身为主体,去对比目标列表中的元素,获取主列表中存在但是不存在目标列表中的元素集合

// using System.Linq;
 
List<int> list1 = new List<int> { 1, 2, 3, 4 };
List<int> list2 = new List<int> { 3, 4, 5, 6 };
 
var except= list1.Except(list2).ToList();
// except= new List<int>{ 1, 2,};

 

标签:C#,list1,List,System,差集,列表,new,list2
From: https://www.cnblogs.com/sakuraneko/p/18441871

相关文章

  • html2canvas图片跨域问题
    需求:页面有个弹窗,弹窗内部有网站logo、表格、第三方的图片等内容,点击打印按钮,将弹窗区域内容下载至本地安装依赖pnpmaddhtml2canvas引入importhtml2canvasfrom'html2canvas'使用<template>...<button@click="handlePrint()">打印</button></template><s......
  • pbootcms模板指定内容标签调用
    为了更好地理解和使用PbootCMS中的指定内容标签,可以将相关的控制参数和可用的内容标签整理成表格形式。这样可以更清晰地展示每个参数的作用和用法。控制参数参数说明必填id=*内容的ID号,用于控制输出的内容,适用于单页或列表页内容。是scode=*单页的分类编码......
  • Codeforces Round 975 (Div. 2)
    C.CardsPartition(C)对于每个确定的size,有便捷的方法判断该值是否合法:组数最小为\(a_{max}\),若\(k\)张牌可以填出\(a_{max}\)组牌堆则合法;将余下的牌当成新的一组,若\(k\)张牌可以凑出一整组则合法;其余情况不合法。由于check过程为\(O(1)\),可从大到小暴力枚举size,时间......
  • PbootCMS设置当前站点模板,模板子目录,黑白名单,敏感词过滤等
    在PbootCMS中,后台操作涉及多个配置项,包括更换模板路径、配置后台模板子目录、配置后台黑名单和白名单以及敏感词过滤。以下是详细的步骤和解释。后台操作更换模板路径进入【基础内容】在后台管理界面左侧菜单栏中点击“基础内容”。选择【站点信息】在“基础内容”......
  • Qt/C++ 音视频开发 - FFmpeg 安卓版
    Qt/C++音视频开发-FFmpeg安卓版介绍FFmpeg是一个开源的多媒体框架,它可以用来录制、转换和流式传输音视频。在Qt/C++开发中,FFmpeg可以用于处理各种音视频任务,例如转码、推流等。将FFmpeg集成到安卓平台上,可以实现强大的移动端音视频处理功能。应用使用场景视频......
  • pbootcms在线升级后伪静态分页url变成?page=xx问题
    在PbootCMS中,如果你想在网站首页右侧或列表页左侧调用特定栏目的标签(tags),可以使用 {pboot:tags} 标签来实现。下面详细介绍如何使用该标签以及具体参数的含义。使用 {pboot:tags} 标签语法html {pboot:tagsscode=2,5,8num=50}[tags:text]{/pboot:tags}参......
  • docker安装openresty
     一、创建网络dockernetworkcreate-dbridgemy_network 二、拉取镜像dockerpullopenresty/openresty 三、运行临时容器dockerrun-itd--nameopenresty-p80:80--restart=always--netmy_networkopenresty/openresty 四、宿主机创建相应目录mkd......
  • 实现在 PbootCMS 网站首页右侧或列表页左侧调用特定栏目的标签,并确保标签显示和链接正
    假设你想在网站首页右侧或列表页左侧调用特定栏目的标签,可以使用以下代码:HTML模板代码<!--调用指定栏目的标签--><divclass="tags-list">{pboot:tagsscode=2,5,8num=50}<ahref="[tags:url]"><span>[tags:text]</span></a>{/pboot:......
  • linux 如何创建定时任务?crontab -e 定时任务使用的时间是系统时间
    crontab-e创建的定时任务使用的是系统时间。什么是系统时间?系统时间是操作系统内部维护的一个时间戳,用于记录系统启动以来经过的时间,以及当前的日期和时间。系统时间通常与硬件时钟同步,以确保时间的准确性。crontab如何使用系统时间?crontab在执行定时任务时,会根据系统......
  • 洛谷题单指南-分治与倍增-P6648 [CCC2019] Triangle: The Data Structure
    原题链接:https://www.luogu.com.cn/problem/P6648题意解读:在一个n行的数字三角形中,求所有边长为k的正三角形最大值之和。解题思路:1、枚举法枚举每一个边长为k的三角形,在其中求max,然后累加,n最多3000,时间复杂度是n^4,显然超时。2、倍增和ST思想此题非常类似于RMQ问题,也就是求区......