首页 > 解决方案 > 在 c# 中,哈希表键和值出现错误

问题描述

Hashtable hsh = new Hashtable();
hsh.Add("glc", "goldchild");


foreach(DictionaryEntry e in hsh) {
    Console.WriteLine(e.Key, e.Value);
}

标签: c#

解决方案


Hashtable 不是强类型的。因此,您保存到其中的键和值将被转换为object. 一旦您从中获得价值,您需要将其转换回string. 你可以做一些事情,但这里是你应该感兴趣的。

1)尝试将其转换回string

Console.WriteLine(e.Key as string + ":" + e.Value as string);

2)而不是Hashtable使用等效的强类型Dictionary。这应该是可取的,因为您知道您正在使用什么类型并且您将拥有类型安全性。

这意味着如果您尝试以不适合类型的方式使用变量,您的 IDE 会提前警告您,而如果没有类型安全,您可能会在运行时由于无效的转换错误而出现意外异常。

Dictionary<string, string> hsh = new Dictionary<string, string>();
hsh.Add("glc", "goldchild");

foreach (KeyValuePair<string, string> e in hsh)
{
    Console.WriteLine(e.Key + ":" + e.Value);
}

推荐阅读