我在访问数据库中有一个整数,该数据库正在ASP.NET中显示。整数代表了竞争对手在体育赛事中获得的职位(第一,第二,第三等),我想用标准后缀像'st','nd','rd'这样的标准后缀显示,而不仅仅是裸体数字。

一个重要的限制是,这是用于指定不编写VB或C#代码的分配(实际上,它指示文件背后的代码要完全删除)。理想情况下,我想使用标准格式字符串(如果有),否则也许是一个自定义字符串(我没有使用格式字符串太多,那么优先级不足以将大量时间用于*,但是我很好奇关于是否有标准字符串)。

(*任务是今晚到期的,我学到了我无法负担得起的时间,即使他们非常生气,我也无法花时间在没有得到痕迹的东西上。)

有帮助吗?

解决方案

不幸的是,没有标准格式字符串可以执行此操作。但写作并不难:

public static string ToOrdinal(this int i, string format)
{
   string suffix = "th";
   switch (i%100)
   {
       case 11:
       case 12:
       case 13:
          //deliberately empty
          break;
       default:
          switch (i%10)
          {
              case 1:
                  suffix = "st";
                  break;
              case 2:
                  suffix = "nd";
                  break;
              case 3:
                  suffix = "rd";
                  break;
           }
           break;
   }
   return i.ToString(format) + suffix;
}

其他提示

你可以尝试这个

public static string FormatOrdinalNumber(int number)
{
    if (number == 0) return "0";
    switch (number % 100)
    {
        case 11: 
        case 12: 
        case 13: 
        return number + "th";
    }
    switch (number % 10)
    {
        case 1: return number + "st";
        case 2: return number + "nd";
        case 3: return number + "rd";
    }
    return number + "th";
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top