C# 中是否有一种简单的方法可以为数字创建序数?例如:
这可以通过String.Format()还是有任何功能可以做到这一点?
String.Format()
此页面为您提供了所有自定义数字格式规则的完整列表:
自定义数字格式字符串
如您所见,其中没有关于序数的任何内容,因此无法使用String.Format. 然而,编写一个函数来做到这一点并不难。
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"; } }
更新:从技术上讲,<= 0 的序数不存在,所以我更新了上面的代码。也去掉了多余的ToString()方法。
ToString()
另请注意,这不是国际化的。我不知道其他语言中的序数是什么样的。