我想在字典(名称)中存储描述一个对象(名称)的许多不同变量(int,double,字符串等),如下所示:
string ref = "BCB";
int voltage = 12;
double watts = 60;
double width = 12.5;
double height = 15.5;
double cost = 10.2;
我已经阅读了一些有关字典的内容,但是我不明白如何将这些变量存储在其中。
可以用这个变量写一个例子吗?
答案 0 :(得分:1)
您不应该以预期的方式执行此操作(尽管可能是<string, object>
。字典是设计成<key, value>
对。
您需要做的是创建一个结构或一个类,以保存您的属性。
答案 1 :(得分:0)
您可以使用字符串和对象类型, 请注意,如果您希望使用数据,则需要管理转换逻辑。
Dictionary<string, object> dic = new Dictionary<string, object>();
int voltage = 12;
double watts = 60;
double width = 12.5;
double cost = 10.2;
string name = "BCB";
dic.Add("voltage", watts);
dic.Add("watts", width);
dic.Add("height", voltage);
dic.Add("cost", cost);
dic.Add("name", name);
答案 2 :(得分:0)
最好的方法-用它们做一个类。
一种丑陋但仍有效的方法:ValueTuples:
Dictionary<string, (string ref, int voltage, double watts, double width, double height, double cost> dict;
dict.Add("Name", ("Ref", 10, 1.0, 2.0, 3.0, 100.0));
答案 3 :(得分:0)
好吧,你可以使用 字典<动态字符串> 在C#4 / .NET 4中-但除此之外,您不能完全使用显示的代码来实现,因为没有类型可以隐式转换为int,string和double。 (您可以编写自己的类型,但必须分别列出每种类型。)
您可以使用Dictionary,但随后需要转换结果:
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