Tengo una lista como esta:Ordenar una lista de cadenas numéricamente (1,2, ..., en lugar de 9,10 1,10,2)
var l = new List<string> {"bla 1.txt","bla 2.txt","bla 10.txt","bla 3.txt"};
si llamo l.Sort (), la lista se clasifica en el orden 1,10,2,3 que tiene sentido desde un punto de vista de cadena de caracteres puro, pero es una mierda desde una perspectiva de usuario.
Como no quiero/no puedo obligar a mis usuarios a nombrarlos 01, 02, 03, ... Me pregunto si hay un método incorporado o un algoritmo simple para detectar y ordenar los números correctamente , entonces tengo 1,2,3,10? Dado que los números tienen solo 1 o 2 caracteres (es decir, no más de 99) podría hacer una expresión regular que prefija temporalmente todos los números de 1 dígito con un 0 y ordenar, pero antes de reinventar la rueda me pregunto si algo ya existe. ?
3.5SP1 .net si lo que importa, no
4.0
Parece relacionado, eche un vistazo a http://stackoverflow.com/questions/1022203/sorting-strings-containing-numbers-in-a-user-friendly-way – VoodooChild
Duplicate of http://stackoverflow.com/ q/248603/24874 –