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

如何在C# switch表达式中使用索引器?

如何在C# switch表达式中使用索引器进行模式匹配?

你需要将判断字符串长度为3且首字符为'1'的逻辑转换为switch表达式,尝试用this[0]的写法会触发编译错误,这里提供两种可行的解决方式:

方法一:属性模式中直接使用索引器

在属性模式里,不需要加this,直接通过[索引]的形式访问索引器即可:

var a = "123";
var b = a switch
{
    { Length: 3, [0]: '1' } => "passed",
    _ => "error"
};
Console.WriteLine(b); // 输出 "passed"

这种写法在C# 9及以上版本支持,通过属性模式同时匹配Length属性和索引器的值。

方法二:使用位置模式匹配字符序列

字符串可以被视为字符的序列,因此可以直接用位置模式来匹配指定位置的字符,这种写法更简洁:

var a = "123";
var b = a switch
{
    ['1', _, _] => "passed", // 第一个字符为'1',后两个字符任意,同时隐含长度为3
    _ => "error"
};
Console.WriteLine(b); // 输出 "passed"

这里的['1', _, _]模式会自动匹配长度为3的字符串,且第一个字符是'1',完全符合你的原始判断逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 15:57:09