簡單,乾淨,快捷
private static string GetOrdinalSuffix(int num)
{
if (num.ToString().EndsWith("11")) return "th";
if (num.ToString().EndsWith("12")) return "th";
if (num.ToString().EndsWith("13")) return "th";
if (num.ToString().EndsWith("1")) return "st";
if (num.ToString().EndsWith("2")) return "nd";
if (num.ToString().EndsWith("3")) return "rd";
return "th";
}
或者更好的是,作爲一個擴展方法
public static class IntegerExtensions
{
public static string DisplayWithSuffix(this int num)
{
if (num.ToString().EndsWith("11")) return num.ToString() + "th";
if (num.ToString().EndsWith("12")) return num.ToString() + "th";
if (num.ToString().EndsWith("13")) return num.ToString() + "th";
if (num.ToString().EndsWith("1")) return num.ToString() + "st";
if (num.ToString().EndsWith("2")) return num.ToString() + "nd";
if (num.ToString().EndsWith("3")) return num.ToString() + "rd";
return num.ToString() + "th";
}
}
現在你可以叫
int a = 1;
a.DisplayWithSuffix();
,甚至直接爲
1.DisplayWithSuffix();
他們被稱爲序數(第一,第二,等等),而不是基數(1,2,3等),僅供參考。 – pc1oad1etter 2008-09-16 04:15:10
這是在這裏回答很優雅:http://stackoverflow.com/questions/20156/ordinals-in-c# – Portman 2008-09-17 14:32:17
是的,我注意到你的答案。 – 2008-09-18 00:41:35