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

C#中能否以数组作为输入使用Switch表达式?语法求助

在C#中用Switch匹配数组的正确方式

你写的代码用了列表模式匹配数组,这个特性得C# 9.0及以上版本才支持,如果你的项目语言版本低于C# 9.0,这种写法肯定报错。

先解决版本问题

右键项目 → 属性 → 生成 → 高级 → 语言版本,选C# 9.0或者更高的版本(比如C# 10、11)。

语法优化与正确性验证

版本达标后,你原来的switch语句写法是合法的,但可以改成更简洁的switch表达式:

public static string EvaluateIt(int[] rawClusterValues)
{
    return rawClusterValues switch
    {
        [0, 9, 4, 4, 4, 5] => "some result here",
        [1, 0, 0, 0, 0, 0] => "It is found",
        [3, 2, 0, 0, 0, 1] => "this is another result",
        _ => "result is default"
    };
}

关键注意点

  • 列表模式匹配数组时,会严格卡元素数量和顺序,只有数组长度和模式里的元素个数完全一致,且每个对应位置的元素值都对得上,才会命中该分支。
  • 如果要匹配长度不固定的数组,比如只关心开头几个元素,可以用通配符:
    // 匹配以1开头、长度至少为1的数组
    case [1, ..] => "Starts with 1",
    // 匹配长度为3,前两个元素是2和3的数组
    case [2, 3, _] => "First two elements are 2 and 3",
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 10:34:57