黑马程序员--鄢振东
---------------------- ASP.Net+Unity3D游戏开发、.Net培训、期待与您交流! ----------------------
首先hashtable和Dictionary这2个都是属于字典类,就是键值对集合。
相同点:我们都可以对其进行添加键值对 用add() 函数。和addrange()函数。
还有移除move moverange moveat
还有通过 键 去找 值。
不同点:对于值类型,特定类型(不包括 Object)的 Dictionary的性能优于 Hashtable,这是因为 Hashtable 的元素属于 Object 类型,所以在存储或检索值类型时通常发生装箱和取消装箱操作。
Dictionary类与 Hashtable 类的功能相同
HashTable ht=new HashTable();//实现 IDictionary接口
ht.Add(1,"A");
ht.Add(2,"B");
ht.Add(3,"c");
foreach(DictionaryEntry de in ht)//HashTable返回的是DictionaryEntry类型
{
de.Key;
de.Value;
}
Dictionary<int,string> myDictionary=new Dictionary<int,string>();//实现IDictionary接口,IDictionary<T key,T value>类
myDictionary.Add(1,"a");
myDictionary.Add(2,"b");
myDictionary.Add(3,"c");
foreach(int i in myDictionary.Keys)
{
Console.WriteLine("Key="+i+"Value="+myDictionary);
}
Or
foreach(KeyValuePair<string, double> temp in myDictionary)//返回的是KeyValuePair<string, double>泛型数组
{
temp.Key;
temp.Value;
}
2者都是通过循环来便利 来通过键得到值的。
HashTable 和Dictionary的区别