导读:本期聚焦于小伙伴创作的《C#中逻辑模式组合怎么用?and、or、not模式教程详解》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《C#中逻辑模式组合怎么用?and、or、not模式教程详解》有用,将其分享出去将是对创作者最好的鼓励。

C#的逻辑模式组合是模式匹配体系中的重要组成部分,通过and、or、not三个关键字,可以将多个基础模式组合成更复杂的匹配条件,避免编写冗长的条件判断代码,让逻辑表达更清晰直观。

C#中逻辑模式组合怎么用?and、or、not模式教程详解

逻辑模式基础概念

逻辑模式允许开发者对多个模式进行逻辑运算,其中and表示所有模式都满足才匹配成功,or表示任意一个模式满足就匹配成功,not表示对当前模式的结果取反。这些模式可以和类型模式、常量模式、关系模式等基础模式结合使用,大幅扩展模式匹配的适用范围。

and模式的使用方法

and模式用于组合多个需要满足的条件,所有子模式都匹配时整体才匹配。最常见的场景是对数值范围进行判断,比如判断一个数是否在指定区间内。

// 判断数值是否在10到20之间(包含边界)
int num = 15;
if (num is >= 10 and <= 20)
{
    Console.WriteLine("数值在10到20之间");
}

// 在switch表达式中使用and模式
string GetScoreLevel(int score) => score switch
{
    >= 90 and <= 100 => "优秀",
    >= 60 and < 90 => "及格",
    >= 0 and < 60 => "不及格",
    _ => "无效分数"
};

上述代码中,>=10 and <=20就是and模式的典型用法,同时判断数值大于等于10且小于等于20两个条件,比传统的num >=10 && num <=20写法更贴合模式匹配的风格。

or模式的使用方法

or模式只要任意一个子模式匹配就判定整体匹配,适合处理多个可选条件的场景,比如判断输入值是否属于某一组可选值。

// 判断字符是否为元音字母
char c = 'e';
if (c is 'a' or 'e' or 'i' or 'o' or 'u')
{
    Console.WriteLine("字符是元音字母");
}

// 结合类型模式使用or
object obj = "test";
if (obj is int or string)
{
    Console.WriteLine("对象是int类型或者string类型");
}

or模式也可以和类型模式组合,比如上述代码中判断对象是否为int或者string类型,比使用obj is int || obj is string的写法更简洁。

not模式的使用方法

not模式用于对匹配结果取反,适合排除特定条件的场景,比如判断值不属于某个范围或者某个类型。

// 判断数值不在1到10之间
int value = 15;
if (value is not (>= 1 and <= 10))
{
    Console.WriteLine("数值不在1到10之间");
}

// 判断对象不是null
object data = new object();
if (data is not null)
{
    Console.WriteLine("对象不为空");
}

not模式还可以和括号结合使用,比如not (>=1 and <=10)表示不满足大于等于1且小于等于10的条件,逻辑表达非常直观。

逻辑模式的组合使用

三种逻辑模式可以互相嵌套组合,实现更复杂的匹配逻辑,比如同时判断类型和范围条件。

// 判断对象是否为int类型且在1到100之间,或者是string类型且长度大于5
object input = 50;
if (input is (int and >= 1 and <= 100) or (string s and s.Length > 5))
{
    Console.WriteLine("匹配成功");
}

上述代码中,先通过括号分组,第一组判断是否为int类型且在1到100之间,第二组判断是否为string类型且长度大于5,两组之间用or连接,实现了多条件的灵活组合。

使用注意事项

  • 逻辑模式的优先级从高到低为not、and、or,不确定优先级时建议用括号明确分组,避免逻辑错误。
  • and模式的所有子模式都会被执行匹配,or模式在第一个匹配成功的子模式后就会停止后续匹配,和逻辑运算符的短路特性一致。
  • 逻辑模式只能用于模式匹配的上下文,不能直接替代传统的逻辑运算符&&||!使用。

常见问题解答

逻辑模式支持哪些C#版本?

and、or、not逻辑模式从C# 9.0开始引入,使用这些特性需要确保项目的C#语言版本不低于9.0。

逻辑模式可以和属性模式组合吗?

可以,比如判断一个对象的某个属性满足多个条件:person is { Age: >= 18 and < 60 },表示判断person对象的Age属性在18到60之间。

C#逻辑模式and模式or模式not模式修改时间:2026-07-03 15:15:29

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。