# Orden númerico para comparación de cadenas

Table of Contents

Orden númerico para comparación de cadenas – Novedad de .NET 10

En .NET 10 se introduce una funcionalidad llamada numeric ordering for string comparison, o ordenación numérica de cadenas. Esta mejora permite que cuando compares o ordenes cadenas con números dentro, el orden tenga en cuenta el valor numérico y no el orden lexicográfico tradicional.

📚 Problema actual (hasta .NET 8)

En .NET 8 y anteriores, si ordenas cadenas como:

var items = new[] { "file1", "file10", "file2" };
Array.Sort(items);

Resultado: file1, file10, file2 ( No es lo esperado numéricamente)

¿Por qué? Porque el orden lexicográfico compara carácter por carácter:

“file1” vs “file10”: el ‘1’ es menor que ‘1’, pero el siguiente carácter ‘0’ en “file10” hace que se considere mayor que “file2”.

¿Qué hace .NET 10 con numeric ordering?

Introduce una nueva opción en StringComparer que reconoce los valores numéricos dentro de las cadenas, y los ordena correctamente como números.

StringComparer.Numeric

🧪 Ejemplo práctico

var items = new[] { "file1", "file10", "file2" };
Array.Sort(items);
var archivos = new[] { "file1", "file10", "file2", "file20", "file3" };
// Orden tradicional (lexicográfico)
Array.Sort(archivos);
Console.WriteLine("Orden lexicográfico:");
Console.WriteLine(string.Join(", ", archivos));
// Orden numérico
Array.Sort(archivos, StringComparer.Numeric);
Console.WriteLine("\nOrden numérico:");
Console.WriteLine(string.Join(", ", archivos));

Salida

Terminal window
Orden lexicográfico:
file1, file10, file2, file20, file3
Orden numérico:
file1, file2, file3, file10, file20

🧰 ¿Dónde usarlo?

Este nuevo comparador se puede usar en:

Array.Sort()

List.Sort()

LINQ: OrderBy(x => x, StringComparer.Numeric)

Métodos personalizados de comparación

⚙️ ¿Cómo funciona internamente?

.NET 10 hace parsing de los fragmentos numéricos dentro de la cadena (como “10” en “file10”) y los compara como números enteros. Esto se basa en el comportamiento del algoritmo “natural sort”, similar al ordenamiento en el Explorador de Archivos de Windows.

My avatar

¡Gracias por pasarte por el blog! Si te gustó este artículo, te animo a leer otros temas publicados o escribirme por los enlaces que están en el pie de página.


More Posts