Ordenar las claves de un Hashtable con C#
Hoy toca una sencillita, pero de esas que te pueden ahorrar algunas horas de mosqueo. Si sueles trabajar con colecciones de tipo Hashtable, puede que te hayas dado cuenta que cuando intentas obtener su contenido éste no se obtiene en el mismo orden en el que lo has introducido. Quizás te hayas dado cuenta introduciendo elementos ordenados de forma alfabética por su clave, obteniéndolos luego desordenados al intentar recuperarlos.
El motivo de esto es que los Hashtable están hechos para acceder de forma rápida a los elementos que contienen, pero no mantienen el orden de las claves. En el caso de que quieras obtener estas claves de forma alfabética puedes utilizar el siguiente truco:
// coleccion es un Hashtable previamente definido ArrayList aKeys = new ArrayList(coleccion.Keys); aKeys.Sort(); foreach (string key in aKeys) Console.WriteLine(key); |
Excelente tip, me ha ayudado mucho. Gracias y saludos!
Coño, te debo el cielo, una hora tratando de descubrir el patrón en el que se ordena el hash.
Graciassssss
Gracias!!!!! De mucha ayuda