You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# 8.0单行switch表达式如何实现多case合并匹配效果

C# Switch 表达式多 case 合并匹配解决方案

C# 9.0 及以上版本(推荐写法)

C# 9.0 引入的或模式(or pattern) 完美匹配需求,语法简洁直观,和传统switch多case合并的逻辑完全一致,合法写法如下:

var number = 1;
var evenness = number switch 
{ 
    1 or 3 => "odd", 
    2 or 4 => "even",
    _ => "out of range" 
};

C# 8.0 兼容写法

如果项目还在使用C# 8.0,不支持or模式,可以通过when条件子句实现相同效果:

var number = 1;
var evenness = number switch
{
    _ when number == 1 || number == 3 => "odd",
    _ when number == 2 || number == 4 => "even",
    _ => "out of range"
};

扩展场景优化

如果匹配逻辑符合一定规律,还可以搭配关系模式进一步简化代码,比如判断奇偶的场景可以直接用取模逻辑:

var evenness = number switch
{
    < 1 or > 4 => "out of range",
    _ when number % 2 == 0 => "even",
    _ => "odd"
};

内容的提问来源于stack exchange,提问作者apinostomberry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 19:48:03