2010-08-04 14 views
2

可能重複:
Is there an easy way in .NET to get 「st」, 「nd」, 「rd」 and 「th」 endings for numbers?格式數量的排名位置

有什麼已經內置到格式化數作爲一個排名位置C#?

通過 「排行榜上的位置」 是一個均值[ 「ST」, 「第二,」 RD」, 「日」],例如:(1日,2日,3日,4日)

我知道它會很容易寫這個的延伸,我只是想知道,如果已經有一些在語言來迎合。

乾杯

+0

看一看這樣的:http://stackoverflow.com/questions/69262/is-there-an-easy-way-in-net-to-get-st-nd -rd和-TH-結局換號。 – 2010-08-04 15:47:03

+1

重複http://stackoverflow.com/questions/20156/is-there-an-easy-way-to-create-ordinals-in-c – sgriffinusa 2010-08-04 15:47:12

+0

感謝您的鏈接夥計。很有幫助。 – 2010-08-04 15:53:36

回答

0

沒有,有沒有內置的用於這一目的。如果不知道它的相關,但考慮到文化差異,如果您跨越語言/文化。

+0

謝謝Jamiec。在考慮文化時,我正在考慮將序數說明符存儲在資源文件中,以便我們可以爲特定文化指定特定的說明符。你認爲這是一個解決方案? – 2010-08-04 15:54:36

-2

我已更正。請參閱dup如上述評論中所述的授權問題。

不是開箱即用的;然而,正如你所提到的,擴展很容易。

public static string ConvertToRankingPosition(this int value) 
{ 
    var digit = value % 10; 
    return value != 11 && digit == 1 : value + "st" : 
      value != 12 && digit == 2 : value + "nd" : 
      value != 13 && digit == 3 : value + "rd" : 
      value + "th" 
} 

+0

需要處理11,12和13 – Woot4Moo 2010-08-04 15:51:21

+0

似乎有一些你的代碼沒有包含的角落案例。看看重複問題的答案。 – dtb 2010-08-04 15:51:23

+0

我把它放在這裏,就像所有其他類似的SO問題一樣。你的方法被打破,因爲1011返回1011st。 – Jamiec 2010-08-04 15:51:27