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

如何在C#中实现类似Rust的match解构式模式匹配?

在C#中实现类似Rust的元组模式匹配功能

C# 9.0及以上版本提供了与Rust中类似的元组模式匹配能力,包括解构绑定、忽略单个元素、忽略剩余元素等特性。下面是对应你给出的Rust代码的C#实现:

for (int n = 1; n <= 100; n++)
{
    var triple = (n % 5, n % 2, n % 7);
    switch (triple)
    {
        // 解构第二个和第三个元素,对应Rust的(0, y, z)分支
        case (0, var y, var z):
            Console.WriteLine($"First is `0`, `y` is {y}, and `z` is {z}");
            break;
        // 匹配第一个元素为1,忽略剩余所有元素,对应Rust的(1, ..)分支
        case (1, ..):
            Console.WriteLine("First is `1` and the rest doesn't matter");
            break;
        // 匹配最后一个元素为2,忽略前面所有元素,对应Rust的(.., 2)分支
        case (.., 2):
            Console.WriteLine("last is `2` and the rest doesn't matter");
            break;
        // 匹配第一个元素为3、最后一个元素为4,忽略中间元素,对应Rust的(3, .., 4)分支
        case (3, .., 4):
            Console.WriteLine("First is `3`, last is `4`, and the rest doesn't matter");
            break;
        // 默认分支,忽略所有元素,对应Rust的_分支
        default:
            Console.WriteLine("It doesn't matter what they are");
            break;
    }
}

关键特性说明

  • 解构绑定:通过var y、var z将元组中的元素绑定到变量,和Rust中的直接绑定逻辑一致。
  • 剩余忽略模式..:用于忽略元组中未明确指定的剩余元素,无论是前缀、后缀还是中间部分,都能像Rust中一样使用。
  • 默认分支default:对应Rust中的_,匹配所有未被前面分支覆盖的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 13:20:21