c# 8.0 switch 表达式中的多种情况

Multiple case in c# 8.0 switch expression

我正在将 switch statement 转换为 switch expression,但我没有这样做。我的功能哪里出错了?

  1. 写下你的 switch 语句
  2. 将光标放在 switch 关键字上,然后按 Ctrl+。触发快速操作和重构菜单。
  3. Select 将 switch 语句转换为表达式。

Microsoft Docs

编码愉快!

or operator in switch在c#8.0中不可用,c#9.0以上版本可用,在c#8.0中可按如下方式解决:

static string CardinalToOrdinal(int number)
        {
            return number switch
            {
                11 => $"{ number}th",
                12 => $"{ number}th",
                13 => $"{ number}th",
                _ => $"{number}" + number.ToString()[number.ToString().Length - 1]
                switch
                {
                    '1' => "st",
                    '2' => "nd",
                    _ => "th"
                }
            };
        }

更多信息,请查看this文章