0

0

C# 中的模式匹配逻辑模式如何组合条件?

煙雲

煙雲

发布时间:2025-10-10 13:02:01

|

884人浏览过

|

来源于php中文网

原创

C# 中模式匹配支持 and、or、not 操作符,可在 switch 表达式或 is 检查中组合条件,如判断整数范围或非空字符串,使代码更简洁清晰。

c# 中的模式匹配逻辑模式如何组合条件?

在 C# 中,模式匹配的逻辑模式可以通过 andornot 关键字组合多个条件,使判断更灵活简洁。这些逻辑操作符允许你在 switch 表达式、is 模式或 when 子句中构建复杂的匹配逻辑。

使用 and 组合多个条件

当需要同时满足多个条件时,使用 and。例如判断一个对象是整数且值在某个范围内:

if (input is int number and >= 1 and <= 100)
{
    Console.WriteLine($"有效数字: {number}");
}

这个例子中,只有当 input 是 int 类型,并且值大于等于 1 且小于等于 100 时才会匹配。

使用 or 匹配任一条件

当你希望满足多个条件中的任意一个时,使用 or。比如判断输入是否为特定几个值之一:

if (value is string s and (s == "yes" or s == "y" or s == "true"))
{
    Console.WriteLine("用户同意");
}

这里用括号将多个 or 条件分组,确保逻辑清晰。

使用 not 排除特定情况

not 可以用来否定某个模式,常用于排除某些值:

花生AI
花生AI

B站推出的AI视频创作工具

下载
if (obj is not null)
{
    Console.WriteLine("对象不为空");
}

这比写 obj != null 更符合模式匹配风格。也可以结合其他模式使用:

if (input is string str and not "")
{
    Console.WriteLine($"非空字符串: {str}");
}

switch 表达式中组合逻辑模式

switch 表达式也支持逻辑模式组合,适合处理复杂分支:

string result = value switch
{
    int i and < 0 => "负整数",
    int i and >= 0 => "非负整数",
    string s and (s.Length > 0) => "非空字符串",
    null => "空值",
    _ => "其他类型"
};

每个分支都可以使用 and、or、not 构建精细的判断条件。

基本上就这些。C# 的逻辑模式让条件判断更直观,减少嵌套 if,代码更易读。关键是理解 and 表示“都满足”,or 表示“任一成立”,not 表示“取反”,再合理使用括号控制优先级即可。

相关专题

更多
c语言中null和NULL的区别
c语言中null和NULL的区别

c语言中null和NULL的区别是:null是C语言中的一个宏定义,通常用来表示一个空指针,可以用于初始化指针变量,或者在条件语句中判断指针是否为空;NULL是C语言中的一个预定义常量,通常用来表示一个空值,用于表示一个空的指针、空的指针数组或者空的结构体指针。

231

2023.09.22

java中null的用法
java中null的用法

在Java中,null表示一个引用类型的变量不指向任何对象。可以将null赋值给任何引用类型的变量,包括类、接口、数组、字符串等。想了解更多null的相关内容,可以阅读本专题下面的文章。

436

2024.03.01

if什么意思
if什么意思

if的意思是“如果”的条件。它是一个用于引导条件语句的关键词,用于根据特定条件的真假情况来执行不同的代码块。本专题提供if什么意思的相关文章,供大家免费阅读。

749

2023.08.22

switch语句用法
switch语句用法

switch语句用法:1、Switch语句只能用于整数类型,枚举类型和String类型,不能用于浮点数类型和布尔类型;2、每个case语句后面必须跟着一个break语句,以防止执行其他case的代码块,没有break语句,将会继续执行下一个case的代码块;3、可以在一个case语句中匹配多个值,使用逗号分隔;4、Switch语句中的default代码块是可选的等等。

534

2023.09.21

Java switch的用法
Java switch的用法

Java中的switch语句用于根据不同的条件执行不同的代码块。想了解更多switch的相关内容,可以阅读本专题下面的文章。

414

2024.03.13

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

258

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

208

2023.09.04

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1465

2023.10.24

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

72

2026.01.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Bootstrap 5教程
Bootstrap 5教程

共46课时 | 2.9万人学习

【web前端】Node.js快速入门
【web前端】Node.js快速入门

共16课时 | 2万人学习

Go语言实战之 GraphQL
Go语言实战之 GraphQL

共10课时 | 0.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号