Frage

Ich muss einen alten Code debuggen, der eine Hashtable verwendet, um Antworten von verschiedenen Threads zu speichern.

Ich brauche eine Möglichkeit, die gesamte Hashtable durchzugehen und beide Schlüssel und die Daten im Hastable auszudrucken.

Wie kann das gemacht werden?

War es hilfreich?

Lösung

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

Andere Tipps

Ich mag:

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

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

Dies sollte für so ziemlich jede Version des Frameworks funktionieren ...

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

Der Trick besteht darin, dass Sie eine Liste/Sammlung der Schlüssel (oder Werte) eines bestimmten Hashs zum Durchlaufen erhalten können.

BEARBEITEN:Wow, du versuchst, deinen Code ein wenig zu verschönern, und als nächstes weißt du, dass es 5 Antworten gibt ...8^D

Ich habe auch festgestellt, dass dies auch funktionieren wird.

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

Danke für die Hilfe.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top