C#中有没有一种简单的方法可以为数字创建序数?例如:
可以通过完成此操作String.Format()还是可以使用任何功能?
String.Format()
该页面为您提供了所有自定义数字格式设置规则的完整列表:
http://msdn.microsoft.com/zh- CN/library/0c899ak8.aspx
如您所见,关于序号的内容不多,因此无法使用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()
另请注意,这不是国际化的。我不知道其他语言的序号是什么样子。