在 C# 中是否有一种简单的方法可以为一个数字创建 Ordinals?例如:

  • 1 返回第一个
  • 2 返回第二个
  • 3 返回第三个
  • ...等

  • 这可以通过 String.Format() 完成还是有任何功能可以做到这一点?

    最佳答案

    此页面为您提供所有自定义数字格式规则的完整列表:
    Custom numeric format strings
    如您所见,其中没有关于序数的内容,因此无法使用 String.Format 来完成。然而,编写一个函数来做到这一点并不难。

    public static string AddOrdinal(int num)
    {
        if( num <= 0 ) return num.ToString();
    
        switch(num % 100)
        {
            case 11:
            case 12:
            case 13:
                return num + "th";
        }
    
        switch(num % 10)
        {
            case 1:
                return num + "st";
            case 2:
                return num + "nd";
            case 3:
                return num + "rd";
            default:
                return num + "th";
        }
    }
    
    更新:从技术上讲,ToString() 方法。
    另请注意,这不是国际化的。我不知道其他语言中的序数是什么样的。

    关于c# - 有没有一种简单的方法可以在 C# 中创建序数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20156/

    10-16 08:59