10

Hashtable を使用してさまざまなスレッドからの応答を格納する古いコードをデバッグする必要があります。

Hashtable 全体を調べて、Hashtable 内のキーとデータの両方を出力する方法が必要です。

これはどのように行うことができますか?

4

5 に答える 5

22
foreach(string key in hashTable.Keys)
{
   Console.WriteLine(String.Format("{0}: {1}", key, hashTable[key]));
}
于 2008-08-29T18:03:37.120 に答える
9

好き:

foreach(DictionaryEntry entry in hashtable)
{
    Console.WriteLine(entry.Key + ":" + entry.Value);
}
于 2008-08-29T18:55:10.087 に答える
3

   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

于 2008-08-29T18:04:37.073 に答える
1

これは、フレームワークのほとんどすべてのバージョンで機能するはずです...

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

トリックは、反復する特定のハッシュのキー (または値) のリスト/コレクションを取得できることです。

編集:うわー、コードを少しきれいにしようとすると、次に5つの答えがわかる... 8 ^ D

于 2008-08-29T18:06:40.063 に答える
1

これもうまくいくことがわかりました。

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

助けてくれてありがとう。

于 2008-08-29T18:10:55.420 に答える