引子:

事情的起因我已经记不清了,但是事情的根本原因在于,我们要遍历一个集合,是用字典来存储还是用数组链表来存储。

1.       把基本概念说清

List<T>的阐述,我在http://www.cnblogs.com/kym/archive/2009/03/09/1406657.html一文中已经有过相应的解释,再此不再赘述。

Dictionary<T1,T2>,我们俗称其为字典,他包含一个Key和与之对应的Value,其目的是能够根据Key迅速地找到Value,算法复杂度为O(1)

2.       Dictionary<T1,T2>Hashtable的异同

首先很多人都认同一个观点,说Dictionary<T1,T2>HashTable的泛型版本,这一点在大致上是正确的,可是当我们运行这样一段代码时,便可看出他们的不同:

 1             Dictionary<intint> dic = new Dictionary<intint>();
 2             dic.Add(15);
 3             dic.Add(103);
 4             dic.Add(25);
 5             foreach (int key in dic.Keys)
 6             {
 7                 Console.WriteLine(key);
 8             }
 9 
10             Hashtable hashtable = new Hashtable();
11             hashtable.Add(15);
12             hashtable.Add(103);
13             hashtable.Add(25);
14             foreach (object key in hashtable.Keys)
15             {
16                 Console.WriteLine(key.ToString());
17             }

相关文章: