Imprima as chaves e os Dados de uma tabela de hash em C# .NET 1.1
Pergunta
Eu preciso depurar alguns antigo código que usa uma tabela de hash para armazenar resposta a partir de vários threads.
Eu preciso de uma maneira de passar por todo o Hashtable e imprimir em ambas as chaves e os dados da Hastable.
Como isso pode ser feito?
Solução
foreach(string key in hashTable.Keys)
{
Console.WriteLine(String.Format("{0}: {1}", key, hashTable[key]));
}
Outras dicas
Eu gosto de:
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();
}
a partir de: http://msdn.microsoft.com/en-us/library/system.collections.hashtable(VS.71).aspx
Isso deve funcionar para praticamente todas as versões do framework...
foreach (string HashKey in TargetHash.Keys)
{
Console.WriteLine("Key: " + HashKey + " Value: " + TargetHash[HashKey]);
}
O truque é que você pode obter uma lista/recolha das chaves (ou os valores) de um determinado hash para iterar.
EDITAR:Uau, você tentar bastante o seu código um pouco e a próxima coisa que você sabe há 5 respostas...8^D
Eu também achei que isso vai funcionar também.
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);
}
Obrigado pela ajuda.