[C#]三項演算子をswitch文の代わりとして使用する

小ネタ。
三項演算子(条件演算子?)は可視性がいまいちだとかで嫌われてる気がするけど
うまく使えば簡単なswitch文の代わりにだってなるし、むしろ見やすいと思うよ!
という話。
 

まず、一般的によく使われるのは、↓こんなif文の代替にするケースか。

//int num;
string text;
if (num == 1) 
{
    text = "いち";
} 
else 
{
    text = "いちじゃない";
}

これを以下のように三項演算子に置き換えるとすっきり書ける。
ここまではまあ特に文句もないでしょう。

//int num;
var text = num == 1 ? "いち" : "いちじゃない";

 

そして問題は、1か1じゃないかだけでなくて、
1か、2か、3か、それ以外かで分岐したいような場合。
if – else if – else if…ってやってくのもあれだから、
switch文にしましょうってなことをやったりすると思う。
もちろん、いったんDictionary的なので対応付けを作って~とかでもいいのだけど。

//int num;
string text;
switch (num)
{
    case 1:
        text = "いち";
        break;
    case 2:
        text = "に";
        break;
    case 3: 
        text = "さん";
        break;
    default:
        text = "その他";
        break;
}

 
こういうときに、三項演算子を使うと意外とすっきり書けてしまうのですよ。
ほれ。

//int num;
var text = num == 1 ? "いち"
         : num == 2 ? "に"
         : num == 3 ? "さん"
         : "その他";

 
なんとなく三項演算子って横着な人がだらだら横に長く書くイメージがあるけど
実は縦に並べると見やすくなるのよな。

C#にかぎらず、いろんな言語で使える方法だし、
とうの昔から使っている人は使っているんだろうとは思いますが。