我需要某种方式来存储键/值对,其中值可以是不同类型。
所以我喜欢这样做:
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
的类型, string
和 double
. (您可以自己编写一个,但您必须分别列出每种类型。)
你可以使用 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/