【发布时间】:2010-11-28 20:32:24
【问题描述】:
我需要定义一个具有内部集合对象的类,以通过字符串键保存不同类型的值(如字符串、int、float、DateTime 和 bool)。我可以使用 Hashtable,因为它不是强类型集合类,而 Dictionary 用于强类型项目(即使我可以将对象用于 Dictionary)。
这是我想定义我的类及其用法的情况:
public class MyBaseClass<D> {
protected Hashtable ht = new Hashtable();
MyClass public SetValue<T>(string key, T value)
{
ht.Add(key, value);
return this;
}
public abstract D GetObject();
}
// Example of using the base class for data as class Data1
public MyClass<Data1> : MyBaseClass<Data1> {
public Data1 GetObject() {
return new Data1 {
Property1 = ht["key1"] as string,
Property2 = Int.Parse(ht["key2"].ToString())
}
}
对于上面的例子,我不确定在 MyBaseClass 中保存数据的最佳集合是什么?我读了一些关于 Hashtable 的文章。它是一个过时的集合,与 Dictionary 集合相比,性能要慢得多。我应该使用 Dictionary 还是 .Net 3.5 中可用的任何其他集合?
【问题讨论】:
-
字典是一个优化的哈希表。我认为这回答了你的问题:)
标签: c# collections dictionary