2010-08-04 6 views
2

Possible en double:
Is there an easy way in .NET to get “st”, “nd”, “rd” and “th” endings for numbers?numéro de format en position classement

Y at-il déjà construit en C# qui formate un nombre en position dans le classement?

Par "classement position" est moyenne l'un des [ "st", "e" e », "e"] par exemple:. (1er, 2ème, 3ème, 4ème)

Je sais que ça facile d'écrire une extension pour cela, je me demande s'il y a déjà quelque chose dans la langue pour répondre.

Vive

+0

Jetez un oeil à ceci: http://stackoverflow.com/questions/69262/is-there-an-easy-way-in-net-to-get-st-nd -rd-et-terminaisons-pour-nombres. –

+1

Dupliquer de http://stackoverflow.com/questions/20156/is-there-an-easy-way-to-create-ordinals-in-c – sgriffinusa

+0

Merci pour les liens les gars. Très utile. –

Répondre

0

Non, il n'y a rien à cet effet intégré. Je ne sais pas si son Si vous vous trouvez dans une autre langue, pensez aux différences culturelles si vous vous trouvez dans une autre langue/culture

+0

Merci Jamiec. En considérant les cultures, je pense à stocker le spécificateur ordinal dans un fichier de ressources afin que nous puissions spécifier des spécificités pour certaines cultures. Que pensez-vous de cela comme une solution? –

-2

J'ai été corrigé. questions précises telles que décrites dans les commentaires ci-dessus.

Non prêt à l'emploi; Cependant, comme vous l'avez mentionné, une extension est assez facile.

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

doit gérer 11,12, et 13 – Woot4Moo

+0

Il semble y avoir quelques cas d'angle que votre code n'incorpore pas. Jetez un oeil aux réponses aux questions en double. – dtb

+0

Ill mis ici comme tout le monde a dans toutes les autres questions similaires SO; Votre méthode est cassée car 1011 renvoie 1011st. – Jamiec