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

煙雲
发布: 2025-10-10 13:02:01
原创
858人浏览过
<p>C# 中模式匹配支持 and、or、not 操作符,可在 switch 表达式或 is 检查中组合条件,如判断整数范围或非空字符串,使代码更简洁清晰。</p>

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 可以用来否定某个模式,常用于排除某些值:

模力视频
模力视频

模力视频 - AIGC视频制作平台 | AI剪辑 | 云剪辑 | 海量模板

模力视频51
查看详情 模力视频
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# 中的模式匹配逻辑模式如何组合条件?的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

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