rksoftware

Visual Studio とか C# とかが好きです

C# 8 の確認 - タプル パターン

今回は タプル パターン 。言語仕様的にはすごく納得感ある機能で、できなくても困りはしないけど、できて欲しい書き方ですね。

公式はこちら

このブログでの目次?はこちら

タプルを条件にできる

値も条件もタプルにできます。
次のコードでは、大都会と表示されます。

string first = "saitama", second = "gunma";
var val = (first, second) switch
{
    ("saitama", "ibaraki") => "ibaraki",
    ("chiba", "gunma") => "chiba",
    ("saitama", "gunma") => "大都会",
    _ => "No",
};
Console.WriteLine(val);

当たり前ではありますが、タプルの変数を評価することもできます。

var daitokai = ("saitama", "gunma");
var val = daitokai switch
{
    ("saitama", "ibaraki") => "ibaraki",
    ("chiba", "gunma") => "chiba",
    ("saitama", "gunma") => "大都会",
    _ => "No",
};
Console.WriteLine(val);

特にいうことは無い、とても自然な仕様ですね。