Ho una lista come questa:Ordinamento una lista di stringhe numericamente (1,2, ..., 9,10 invece di 1,10,2)
var l = new List<string> {"bla 1.txt","bla 2.txt","bla 10.txt","bla 3.txt"};
se chiamo l.Sort (), la lista viene ordinata nell'ordine 1,10,2,3 che ha senso dal punto di vista della pura stringa, ma fa schifo da una prospettiva utente.
Dal momento che non voglio/non posso forzare i miei utenti a nominarli 01, 02, 03, ... Mi chiedo se c'è un metodo integrato o un semplice algoritmo per rilevare e ordinare i numeri correttamente , quindi ho 1,2,3,10? Dato che i numeri sono lunghi solo 1 o 2 caratteri (cioè non più di 99), potrei fare una regex che prefissa temporaneamente tutti i numeri a 1 cifra con 0 e sort, ma prima di reinventare la ruota mi chiedo se qualcosa esiste già ?
.net 3.5SP1 se quello che conta, non 4,0
Aspetti correlati, dare un'occhiata a http://stackoverflow.com/questions/1022203/sorting-strings-contain-numbers-in-a-user-friendly-way – VoodooChild
Duplicato di http://stackoverflow.com/ q/248603/24874 –