Imprimer les clés et les données d'une table de hachage en C# .NET 1.1
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?
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.