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);
Twitter Digg Delicious Stumbleupon Technorati Facebook Email

3 Respuestas para “Ordenar las claves de un Hashtable con C#”

  1. Excelente tip, me ha ayudado mucho. Gracias y saludos!

  2. Alexander Granados 16. Abr, 2011 en 1:11 am

    Coño, te debo el cielo, una hora tratando de descubrir el patrón en el que se ordena el hash.

    Graciassssss

  3. Gracias!!!!! De mucha ayuda