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
相关产品推荐
相关产品推荐

