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

C# 的两个list怎么判断是否存在交集

要判断两个 List<string>dateListLocalDate)是否有交集,可以使用 LINQ(Language Integrated Query)来简化这个过程。以下三种方法来判断两个列表之间是否有交集。

方法 1: 使用 LINQ 的 Any 方法

using System;
using System.Collections.Generic;
using System.Linq;public class Program
{public static void Main(){List<string> dateList = new List<string> { "2024-01-01", "2024-02-02", "2024-03-03" };List<string> localDate = new List<string> { "2024-03-03", "2024-04-04" };bool hasIntersection = dateList.Any(date => localDate.Contains(date));if (hasIntersection){Console.WriteLine("两个列表有交集。");}else{Console.WriteLine("两个列表没有交集。");}}
}

方法 2: 使用 LINQ 的 Intersect 方法

using System;
using System.Collections.Generic;
using System.Linq;public class Program
{public static void Main(){List<string> dateList = new List<string> { "2024-01-01", "2024-02-02", "2024-03-03" };List<string> localDate = new List<string> { "2024-03-03", "2024-04-04" };var intersection = dateList.Intersect(localDate).Any();if (intersection){Console.WriteLine("两个列表有交集。");}else{Console.WriteLine("两个列表没有交集。");}}
}

方法 3: 使用集合操作

如果要频繁地检查交集,可以考虑将其中一个列表转换为集合(HashSet),这样会提高查找效率。

using System;
using System.Collections.Generic;public class Program
{public static void Main(){List<string> dateList = new List<string> { "2024-01-01", "2024-02-02", "2024-03-03" };List<string> localDate = new List<string> { "2024-03-03", "2024-04-04" };HashSet<string> dateSet = new HashSet<string>(dateList);bool hasIntersection = localDate.Any(date => dateSet.Contains(date));if (hasIntersection){Console.WriteLine("两个列表有交集。");}else{Console.WriteLine("两个列表没有交集。");}}
}

总结

  • 方法 1方法 2 使用 LINQ 提供了简洁的语法,适合大多数情况。
  • 方法 3 使用集合操作可以在大量数据情况下提高性能,特别是当 localDate 列表较大时。
http://www.lryc.cn/news/464193.html

相关文章:

  • 【Python】基础语法
  • scala 类的继承
  • 穷举vs暴搜vs深搜vs回溯vs剪枝(一)
  • 枚举的应用
  • 读数据工程之道:设计和构建健壮的数据系统14源系统
  • 基于SpringBoot+Vue的厨艺交流系统的设计与实现(源码+定制开发)厨艺知识与美食交流系统开发、在线厨艺分享与交流平台开发、智能厨艺交流与分享系统开发
  • STMicroelectronics 意法半导体芯片选型表
  • TCP/IP 寻址
  • 深入探索 APKTool:Android 应用的反编译与重打包工具
  • 软件测试与软件缺陷的基础知识
  • 【JPCS独立出版,EI检索稳定】第三届能源互联网及电力系统国际学术会议(ICEIPS 2024)
  • ssm配置模式
  • [MySQL课后作业]人事管理系统的SQL实践
  • 【MySQL】增删改查-进阶(二)
  • cefsharp79.1.360(Chromium 79.0.3945.130)支持H264视频播放-PDF预览 老版本回顾系列体验
  • 【Linux】main函数的参数列表从何而来?
  • 缓冲区类QBuffer
  • 从一个事故中理解 Redis(几乎)所有知识点
  • MySQL程序介绍<二>
  • Java项目实战II基于Spring Boot的毕业就业信息管理系统设计与实现(源码+数据库+文档)
  • LeetCode 1343.大小为K且平均值大于等于阈值的子数组数目
  • 【电商项目】1分布式基础篇
  • PHP嵌套函数
  • 外包干了2个月,技术明显退步
  • kaptcha依赖maven无法拉取的问题
  • 48.旋转图像
  • 每天5分钟玩转C#/.NET之goto跳转语句
  • Java处理大数据小技巧:深入探讨与实践
  • 我开源了Go语言连接数据库和一键生成结构体的包【实用】
  • Sentinel 快速入门