Распечатайте ключи и данные Hashtable в C # .NET 1.1 - PullRequest
9 голосов
/ 29 августа 2008

Мне нужно отладить некоторый старый код, который использует Hashtable для хранения ответа от различных потоков.

Мне нужен способ просмотреть всю Hashtable и распечатать оба ключа и данные в Hastable.

Как это можно сделать?

Ответы [ 5 ]

21 голосов
/ 29 августа 2008
foreach(string key in hashTable.Keys)
{
   Console.WriteLine(String.Format("{0}: {1}", key, hashTable[key]));
}
9 голосов
/ 29 августа 2008

Мне нравится:

foreach(DictionaryEntry entry in hashtable)
{
    Console.WriteLine(entry.Key + ":" + entry.Value);
}
3 голосов
/ 29 августа 2008

   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();
   }

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

1 голос
/ 29 августа 2008

Я также обнаружил, что это тоже будет работать.

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);
}

Спасибо за помощь.

1 голос
/ 29 августа 2008

Это должно работать практически для каждой версии фреймворка ...

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

Хитрость в том, что вы можете получить список / коллекцию ключей (или значений) заданного хеша для перебора.

РЕДАКТИРОВАТЬ: Wow, вы пытаетесь немного раскрасить свой код и следующая вещь, вы знаете, там 5 ответов ... 8 ^ D

...