Question

J'ai besoin de déboguer un ancien code qui utilise une table de hachage pour stocker les réponses de différents threads.

J'ai besoin d'un moyen de parcourir l'intégralité de la table de hachage et d'imprimer les clés et les données dans la table de hachage.

Comment cela peut-il être fait?

Était-ce utile?

La solution

foreach(string key in hashTable.Keys)
{
   Console.WriteLine(String.Format("{0}: {1}", key, hashTable[key]));
}

Autres conseils

J'aime:

foreach(DictionaryEntry entry in hashtable)
{
    Console.WriteLine(entry.Key + ":" + entry.Value);
}

   public static void PrintKeysAndValues( Hashtable myList )  {
      IDictionaryEnumerator myEnumerator = myList.GetEnumerator();
      Console.WriteLine( "\t-KEY-\t-VALUE-" );
      while ( myEnumerator.MoveNext() )
         Console.WriteLine("\t{0}:\t{1}", myEnumerator.Key, myEnumerator.Value);
      Console.WriteLine();
   }

depuis: http://msdn.microsoft.com/en-us/library/system.collections.hashtable(VS.71).aspx

Cela devrait fonctionner pour presque toutes les versions du framework...

foreach (string HashKey in TargetHash.Keys)
{
   Console.WriteLine("Key: " + HashKey + " Value: " + TargetHash[HashKey]);
}

L'astuce est que vous pouvez obtenir une liste/collection de clés (ou de valeurs) d'un hachage donné à parcourir.

MODIFIER:Wow, vous essayez d'embellir un peu votre code et la prochaine chose que vous savez, il y a 5 réponses...8^D

J'ai aussi trouvé que cela fonctionnerait aussi.

System.Collections.IDictionaryEnumerator enumerator = hashTable.GetEnumerator();

while (enumerator.MoveNext())
{
    string key = enumerator.Key.ToString();
    string value = enumerator.Value.ToString();

    Console.WriteLine(("Key = '{0}'; Value = '{0}'", key, value);
}

Merci pour l'aide.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top