c# - 如何在 C# 中创建包含不同类型的字典

标签 c# dictionary hashtable

我需要某种方式来存储键/值对,其中值可以是不同类型。

所以我喜欢这样做:

 int i = 12;
 string s = "test";
 double x = 24.1;

 Storage.Add("age", i);
 Storage.Add("name", s);
 Storage.Add("bmi", x);

然后使用以下方法检索值:

 int a = Storage.Get("age");
 string b = Storage.Get("name");
 double c = Storage.Get("bmi");

像这样的存储应该是什么样子的? 谢谢, 埃里克

最佳答案

好吧,你可以使用 Dictionary<string, dynamic>在 C# 4/.NET 4 中 - 但除此之外,您不能完全使用显示的代码来执行此操作,因为没有可隐式转换为 int 的类型, stringdouble . (您可以自己编写一个,但您必须分别列出每种类型。)

你可以使用 Dictionary<string, object>但是你需要转换结果:

int a = (int) Storage.Get("age");
string b = (string) Storage.Get("name");
double c = (double) Storage.Get("bmi");

或者,您可以制作 Get通用方法:

int a = Storage.Get<int>("age");
// etc

关于c# - 如何在 C# 中创建包含不同类型的字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4105361/

相关文章:

c# - HttpClient 中的 GetStringAsync 方法在 WP8 中抛出异常

c# - 需要签名 DLL Microsoft.WindowsAPICodePack.Shell

c# - 在 C# 页面处理期间, session 可以过期吗

haskell - 实现相同功能的不同类型的映射列表?

c++ - 构造函数不更新类成员变量

C# 无法加载 DLL(找不到模块 HRESULT : 0x8007007E)

java - java中未使用的异常并从映射中删除对象

python - 使用元组中的一个键访问字典键和值

hashtable - 使用巨大的哈希表在多项式时间内解决数独

java - 查询HashMap内部实现