在现代 C# 编程中,模式匹配(Pattern Matching)是一项强大而优雅的特性,尤其从 C# 7 开始逐步增强,并在 C# 11 中引入了对 列表模式(List Patterns)的支持。本教程将带你从零开始,深入浅出地掌握如何使用 C#列表模式匹配 来简洁、安全地处理 C#集合元素。

列表模式匹配是 C# 11 引入的新语法,允许你通过类似 [...]、[1, 2, ..] 这样的模式来检查一个集合(如数组、List 等)是否符合特定结构或包含特定元素。
它让你无需写冗长的 if 判断或循环,就能快速判断集合的开头、结尾、长度甚至中间元素是否满足条件。
C# 列表模式的基本形式如下:
if (list is [1, 2, 3]){ // 当 list 恰好包含三个元素:1, 2, 3}你还可以使用 ..(称为“切片模式”)来匹配任意数量的中间元素:
if (list is [1, .., 5]){ // 当 list 以 1 开头、以 5 结尾,中间可以有任意数量元素(包括0个)}var numbers = new List { 42 };if (numbers is []){ Console.WriteLine("列表为空");}else if (numbers is [var single]){ Console.WriteLine($"列表只有一个元素:{single}");}// 输出:列表只有一个元素:42 var colors = new string[] { "red", "green", "blue", "yellow" };if (colors is ["red", .., "yellow"]){ Console.WriteLine("以 red 开头,yellow 结尾!");}// 输出:以 red 开头,yellow 结尾!static string AnalyzeList(List nums) => nums switch{ [] => "空列表", [0] => "只有一个零", [1, 2] => "正好是 [1, 2]", [1, ..] => "以 1 开头", [.., 99] => "以 99 结尾", [var first, .., var last] => $"首元素 {first},末元素 {last}", _ => "其他情况"};// 测试Console.WriteLine(AnalyzeList(new())); // 空列表Console.WriteLine(AnalyzeList([1, 5, 99])); // 首元素 1,末元素 99 T[])、List<T>、以及任何实现 System.Index 和 System.Range 的集合。通过本篇 C#模式匹配教程,你应该已经掌握了如何使用列表模式匹配来简化对集合的判断逻辑。这项特性不仅让代码更简洁,还提升了可读性和安全性,特别适合处理配置解析、协议校验、数据验证等场景。
如果你是 C#新手编程 学习者,建议在支持 C# 11 的开发环境中动手尝试上述示例,加深理解。随着你对模式匹配的熟练掌握,你会发现 C# 正变得越来越函数式、越来越优雅!
希望这篇关于 C#列表模式匹配 和 C#集合元素匹配 的教程对你有所帮助!
本文由主机测评网于2025-12-20发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/20251210528.html