贝利信息

C#怎么使用list patterns C# 11列表模式匹配详解

日期:2025-12-26 00:00 / 作者:畫卷琴夢
C# 11 的列表模式支持对数组、IReadOnlyList等序列类型进行结构化匹配。它引入位置匹配(如[1,2,3])、通配符_和切片模式..,可结合变量绑定与类型检查,适用于命令行解析、路由匹配等场景。

C# 11 引入的 列表模式(List Patterns) 是对模式匹配能力的重要增强,它让你能更自然、更安全地解构数组、只读集合(如 IReadOnlyList)、Span 等支持索引和长度的序列类型,而不仅限于固定长度的元组或对象。

什么是列表模式?

列表模式允许你在 switch 表达式或 is 检查中,用类似数组字面量的语法来匹配序列结构。核心是三个新语法元素:

基础用法:匹配常见结构

假设你有一个整数数组:

int[] numbers = [1, 2, 3, 4, 5];

你可以这样写模式匹配:

结合变量绑定与类型检查

列表模式支持在匹配同时提取值并声明变量,甚至做类型转换:

实际应用场景举例

列表模式特别适合处理有结构约定的数据序列:

基本上就这些。列表模式不是万能的(不支持非索引集合如 HashSet),但它让 C# 对“序列结构”的表达力上了一个台阶,配合 switch 表达式,写出的逻辑更清晰、更健壮。