Frage

I eine ganze Zahl in einer Access-Datenbank, die in ASP.NET angezeigt wird. Die ganze Zahl repräsentiert die Position eines Wettbewerbers in einem Sportereignis erreicht (1., 2., 3., etc.), und ich mag es wie ‚st‘, ‚nd‘, ‚rd‘ gegebenenfalls mit einem Standard-Suffix anzuzeigen , anstatt nur eine nackte Zahl.

Eine wichtige Einschränkung ist, dass dies für eine Zuordnung ist, die angibt, dass kein VB oder C # Code geschrieben werden (in der Tat ist es anweist Code hinter Dateien vollständig gelöscht werden). Im Idealfall würde Ich mag ein Standard-Format-String verwenden, wenn verfügbar, ansonsten vielleicht eine benutzerdefinierte Zeichenfolge (ich habe nicht mit Formatstrings viel gearbeitet, und dies ist nicht hoch genug, um Priorität zu widmen viel Zeit zu *, aber ich bin sehr gespannt, darüber, ob eine gibt es Standard-Zeichenfolge für diese).

(* Die Zuordnung wegen heute Abend ist, und ich habe auf die harte Tour gelernt, dass ich keine Zeit für Dinge zu verbringen leisten kann, die nicht einmal die Noten bekommen, wenn sie ärgern mich deutlich an.)

War es hilfreich?

Lösung

Leider gibt es keinen Standard-Format-String, dies zu tun. Aber es ist nicht so schwer zu schreiben:

public static string ToOrdinal(this int i, string format)
{
   string suffix = "th";
   switch (i%100)
   {
       case 11:
       case 12:
       case 13:
          //deliberately empty
          break;
       default:
          switch (i%10)
          {
              case 1:
                  suffix = "st";
                  break;
              case 2:
                  suffix = "nd";
                  break;
              case 3:
                  suffix = "rd";
                  break;
           }
           break;
   }
   return i.ToString(format) + suffix;
}

Andere Tipps

Sie könnten versuchen, dieses

public static string FormatOrdinalNumber(int number)
{
    if (number == 0) return "0";
    switch (number % 100)
    {
        case 11: 
        case 12: 
        case 13: 
        return number + "th";
    }
    switch (number % 10)
    {
        case 1: return number + "st";
        case 2: return number + "nd";
        case 3: return number + "rd";
    }
    return number + "th";
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top