c# - 在 c# 中,哈希表键和值出现错误
问题描述
Hashtable hsh = new Hashtable();
hsh.Add("glc", "goldchild");
foreach(DictionaryEntry e in hsh) {
Console.WriteLine(e.Key, e.Value);
}
解决方案
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);
}
推荐阅读
- firebase - 无法捕获新的 FlutterFire Firebase 身份验证
- html - 在 Bootstrap 4 导航栏中更改超链接的文本颜色
- c# - 如何使 Update() 不是垃圾邮件?
- java - 带有嵌入式 Tomcat 的 Spring WebMVC 在 jsp 上提供 404
- javascript - 在邮递员中对每个 API 请求运行预请求脚本
- python - 作用于python中的变量变化
- widget - 如何删除未捕获的 SyntaxError:博客 widger.js 中的意外标记“<”
- antlr - antlr grun 在 windows 命令中无限挂起
- node.js - 从云函数内的请求正文访问各个字段
- docker - docker如何加载差异图像