Creando Ordinals fácilmente en C#

Al trabajar con números, es posible que desees mostrarlos como ordinals—algo que indica su posición en una secuencia, como 1º, 2º o 3º. Si eres un desarrollador de C# y te has preguntado si hay una manera fácil de generar estos ordinals, no estás solo.

En esta publicación del blog, abordaremos cómo crear ordinals en C# y proporcionaremos una función simple para lograrlo. Desglosemos el proceso paso a paso.

Entendiendo los Ordinals

Los ordinals representan el rango o posición de algo en un conjunto. Por ejemplo:

  • 1 se representa como 1º
  • 2 se representa como 2º
  • 3 se representa como 3º

El Desafío

Aunque C# proporciona una variedad de opciones de formato a través de String.Format(), es posible que hayas notado que no incluye una función incorporada para crear números ordinales. Esto puede ser un inconveniente, pero no es insuperable.

Implementando Ordinals en C#

En lugar de depender de funciones integradas, puedes crear una función simple para convertir enteros a su representación de cadena ordinal. Así es cómo hacerlo.

Aquí está el Código

Querrás crear un método estático en tu proyecto de C#:

public static string AddOrdinal(int num)
{
    if(num <= 0) return num.ToString();

    switch(num % 100)
    {
        case 11:
        case 12:
        case 13:
            return num + "º";
    }

    switch(num % 10)
    {
        case 1:
            return num + "º";
        case 2:
            return num + "º";
        case 3:
            return num + "º";
        default:
            return num + "º";
    }
}

Explicación del Código

  1. Validación de Entrada:

    • La función primero verifica si el número es menor o igual a cero. Si lo es, simplemente devuelve el número como una cadena, ya que los ordinals no existen para valores menores o iguales a cero.
  2. Manejando Casos Especiales:

    • La función tiene en cuenta las excepciones relacionadas con los números que terminan en 11, 12 y 13 (como 11º, 12º y 13º).
  3. Determinando el Sufijo:

    • Luego verifica el último dígito del número para determinar el sufijo apropiado:
      • “º” para 1
      • “º” para 2
      • “º” para 3
      • “º” para todos los demás

Ejemplo de Uso

Puedes llamar a esta función desde cualquier parte de tu código en C# de la siguiente manera:

string primerOrdinal = AddOrdinal(1); // Devuelve "1º"
string segundoOrdinal = AddOrdinal(2); // Devuelve "2º"
string undécimoOrdinal = AddOrdinal(11); // Devuelve "11º"

Conclusión

Crear ordinals en C# es sencillo con una función personalizada. Si bien el marco .NET no proporciona actualmente una forma incorporada de formatear ordinals fácilmente, el método compartido anteriormente te permitirá agregar esa funcionalidad con un esfuerzo mínimo.

Ten en cuenta que esta implementación no está internacionalizada, lo que significa que solo funciona para ordinals en inglés. ¡Asegúrate de probar y expandir esto si tu aplicación requiere soporte para otros idiomas!

En resumen, con solo un poco de código, puedes agregar funcionalidad para crear ordinals en C#, mejorando tanto la funcionalidad como la experiencia del usuario en tus aplicaciones.