新闻中心

C# 如何判断一个 List 是否包含某个元素_C# List 元素包含判断方法

2025-11-06
浏览次数:
返回列表
判断List是否包含元素常用Contains方法,适用于简单类型;自定义对象需重写Equals和GetHashCode;复杂条件推荐使用LINQ的Any方法。

c# 如何判断一个 list 是否包含某个元素_c# list 元素包含判断方法

在 C# 中,判断一个 List 是否包含某个元素,最常用的方法是使用 Contains 方法。该方法返回一个布尔值,表示列表中是否存在指定元素。

1. 使用 Contains 方法(适用于简单类型)

对于字符串、整数等基础数据类型,可以直接调用 Contains 方法:

List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
bool hasThree = numbers.Contains(3);
Console.WriteLine(hasThree); // 输出: True
<p>List<string> names = new List<string> { "Alice", "Bob", "Charlie" };
bool hasAlice = names.Contains("Alice");
Console.WriteLine(hasAlice); // 输出: True

2. 判断自定义对象是否包含(需重写 Equals 和 GetHashCode)

如果 List 中存储的是自定义类的对象,直接使用 Contains 可能无法按预期工作,因为默认比较的是引用。你需要重写 EqualsGetHashCode 方法:

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
<pre class="brush:php;toolbar:false;">public override bool Equals(object obj)
{
    if (obj is Person other)
        return Name == other.Name && Age == other.Age;
    return false;
}

public override int GetHashCode()
{
    return HashCode.Combine(Name, Age);
}

}

// 使用示例 List people = new List { new Person { Name = "Alice", Age = 30 }, new Person { Name = "Bob", Age = 25 } };

Person search = new Person { Name = "Alice", Age = 30 }; bool contains = people.Contains(search); Console.WriteLine(contains); // 输出: True

3. 使用 Any 方法进行条件判断(更灵活)

当你需要根据特定条件判断是否存在匹配元素时,可以使用 LINQ 的 Any 方法:

using System.Linq;
<p>List<Person> people = new List<Person>
{
new Person { Name = "Alice", Age = 30 },
new Person { Name = "Bob", Age = 25 }
};</p><p>bool hasAdult = people.Any(p => p.Age >= 18);
Console.WriteLine(hasAdult); // 输出: True</p><p>bool hasAlice = people.Any(p => p.Name == "Alice");
Console.WriteLine(hasAlice); // 输出: True

Contains 更适合精确值匹配,而 Any 提供了更大的灵活性,支持复杂条件判断。

刺鸟创客 刺鸟创客

一款专业高效稳定的AI内容创作平台

刺鸟创客 110 查看详情 刺鸟创客

基本上就这些。根据你的数据类型和需求选择合适的方式即可。

以上就是C# 如何判断一个 List 是否包含某个元素_C# List 元素包含判断方法的详细内容,更多请关注其它相关文章!


# 当你  # 商标搜索网站建设素材  # seo疑问答案  # 国内网站建设价钱排行  # 初级seo工程师工资  # 电影的网站建设  # 推广网站怎么做模版  # 学校党支部网站建设  # 深圳罗湖免费网站建设  # 桂林高效seo哪家好  # seo观察室作用  # 更大  # c#  # 抽象类  # 如何实现  # 如何使用  # 如何判断  # 适用于  # 的是  # 重写  # 自定义  # ai  # list 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: 如何在Promise链中有效终止错误处理后的执行  html5 app怎么运行环境_配html5 app运行环境【教程】  《刺客信条:影》PS5 Pro和Switch 2画面对比  Spring Boot嵌入式服务器与J*a EE:功能支持深度解析  解决Tabulator日期时间排序问题的专业指南  AO3官网镜像链接 Archive of Our Own同人文在线浏览  Golang如何实现状态模式管理对象状态_Golang State模式实现技巧  MongoDB Aggregation:在嵌套对象数组中精确匹配ObjectId  2026年CSGO开箱网站推荐 CSGO开箱平台精选  反效果?《战地6》免费试玩开启后玩家数不升反降  在J*a中如何开发在线活动报名与管理系统_活动报名管理项目实战解析  如何优雅地解决Livewire文件上传难题?SpatieLivewireFilepond让一切变得简单  TikTok搜索不到用户发布内容怎么办 TikTok用户内容搜索优化方法  极速漫画官方主页网址 极速漫画漫画在线浏览官网链接  必由学官方平台入口 必由学在线课堂登录地址  初次安装JDK时环境变量如何正确配置_J*A_HOME与PATH设置规则讲解  单射、满射与双射的关系 一文理清所有逻辑  sublime怎么预览Markdown渲染效果_Markdown Preview插件 for sublime教程  C++ string find函数返回值npos详解_C++字符串查找失败的判断条件  Google翻译怎么语音输入_Google翻译语音输入功能使用与设置方法  Excel如何用迷你图显趋势_Excel用迷你图显趋势【趋势小图】  mysql通配符支持数字匹配吗_mysql通配符能否用于数字匹配的解析  如何修改开机登录密码_Windows账户安全设置超详细教程【必学】  Python:递归比较文件夹内容并找出特定类型文件的差异  微博网页版主页入口 微博官方网站免登录访问  可靠CSGO开箱平台解析 CSGO开箱网合集  必由学官方网站入口 必由学学生教师共用登录通道  深入理解J*aScript中的B样条曲线与节点向量生成  淘宝支付提示失败如何解决 淘宝支付流程优化方法  优化Log4j2控制台输出性能:解决异步日志瓶颈  html怎么运行外部js文件中的函数_运html外js文件函数法【技巧】  Yandex官网搜索引擎免登录_俄罗斯Yandex一键直达入口  b站怎么删除评论_b站评论管理与删除操作  Golang如何安装Swagger工具_GoSwagger文档生成环境  mc.js游戏直达 mc.js网页免下载版本秒进地址  绝地鸭卫平a核爆刀流玩法攻略  C++如何操作大型数据集_使用C++流式处理(Streaming)技术避免一次性加载大文件  wps文字怎么插入目录并自动更新_wps文字如何插入目录并自动更新方法  QQ邮箱稳定登录入口_QQ邮箱官方网站网页版使用  如何解决电商平台定制报价请求的“黑洞”问题,SprykerQuoteRequest模块助你提升客户体验与销售效率  poki免费入口快捷访问 poki人气小游戏直接玩站点  微信网页版官方入口教程 微信网页版网页版快速登录步骤  2306选座时如何选靠窗位置_12306选座靠窗座位查看方法解析  夸克浏览器网页版最新地址 夸克浏览器官方入口合集  在Go开发中优雅管理ListenAndServe进程:GoSublime集成方案  荣耀Play7TPro怎样在信息App置顶客服对话_iPhone荣耀Play7TPro信息App置顶客服对话【优先查看】  响应式CSS Grid布局:优化网格项在小屏幕下的堆叠与宽度适配  必由学官网首页入口 必由学教师网页版登录指南  腾讯QQ邮箱官方网站_QQ邮箱网页版在线登录  KFC套餐升级怎么获取优惠代码_KFC套餐升级活动与优惠代码获取方法 

搜索