【发布时间】:2013-01-31 21:59:10
【问题描述】:
我想存储键值数据并能够以有效的方式访问它。
基本上:我有一个自定义对象(EquipmentObj),并且该对象中有一个名为“DeviceType”的属性。在对象的构造函数中,我将一个字符串传递给字典(设备对象的局部变量),如果字典有键,则返回一个值。
为了尽量减少在堆上初始化字典 25 次,(EquipmentObj 被实例化 25-50 次)我想知道是否有更有效的方法来做到这一点。
我的第一个想法是XML,但是我不能添加反序列化;我不会进入这个。
我的下一个想法可能是使用静态类。但是我仍然需要定义 KeyValuePair 或 Dictionary 并且静态类不能有实例成员。
大家有什么建议?
这是我现在基本上正在做的一个示例。
class EquipmentObj
{
public EquipmentObj(string deviceType)
{
addItems();
this.DeviceType = EquipmentList.ContainsKey(device_Type) ? EquipmentList[deviceType] : "Default";
}
public string DeviceType { get; set; }
private Dictionary<string, string> EquipmentList = new Dictionary<string, string>();
private void addItems()
{
//Add items to Dictionary
}
}
【问题讨论】:
-
字典首先是如何填充的?
-
静态类可以有静态成员。但是你不需要那个,你为什么不让 EquipmentList 成为 EquipmentObj 的静态成员?
-
这听起来很像微优化 - 在它被证明是一个问题之前不要浪费你的时间,只是我的建议。
-
@Casperah - 通常,我会同意,这不值得仅仅为了性能问题而做。但首先制作字典
static是更好的设计,因此值得这样做。 -
EquipmentList 字典是否代表 EquipmentObj 中包含的设备?还是这是别的什么?
标签: c# dictionary keyvaluepair