在C#.NET 1.1中打印出哈希表的键和数据
时间:2020-03-05 18:45:07 来源:igfitidea点击:
我需要调试一些使用哈希表存储来自各个线程的响应的旧代码。
我需要一种方法来遍历整个Hashtable并打印出键和Hastable中的数据。
如何才能做到这一点?
解决方案
回答
foreach(string key in hashTable.Keys) { Console.WriteLine(String.Format("{0}: {1}", key, hashTable[key])); }
回答
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/zh-cn/library/system.collections.hashtable(VS.71).aspx
回答
这几乎适用于该框架的每个版本...
foreach (string HashKey in TargetHash.Keys) { Console.WriteLine("Key: " + HashKey + " Value: " + TargetHash[HashKey]); }
诀窍是我们可以获取给定哈希值的键(或者值)的列表/集合以进行迭代。
编辑:哇,我们尝试使代码漂亮一些,然后下一件事我们知道5个答案... 8 ^ D
回答
我还发现这也可以。
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); }
谢谢帮助。
回答
我喜欢:
foreach(DictionaryEntry entry in hashtable) { Console.WriteLine(entry.Key + ":" + entry.Value); }