一、hashtable和ArrayList的性能比较
hashtable比ArrayList取值更快。原因是前者是根据键直接取值,但是ArrayList是循环整个集合,找到需要的元素。
二、hashtable的用法
1 static void Main(string[] args) 2 { 3 Hashtable hs = new Hashtable(); 4 hs.Add("zs","张三"); 5 hs.Add("ls", "李四"); 6 hs.Add("ww", "王五"); 7 hs.Add("zl", "赵六"); 8 9 //只循环键 10 foreach (var item in hs.Keys) 11 { 12 Console.WriteLine(item); 13 } 14 15 //只循环值 16 foreach (var item in hs.Values) 17 { 18 Console.WriteLine(item); 19 } 20 21 //循环键值对 22 foreach (DictionaryEntry item in hs) 23 { 24 Console.WriteLine(item.Key+" "+item.Value); 25 } 26 27 //hashtable只能根据键来取值,所以通常不能通过for来循环 hashtable。当然如果把键设置成和循环下标相同的值就可以。 28 //for (int i = 0; i <hs.Count; i++) 29 //{ 30 // Console.WriteLine(hs[i]);//不存在这个键,所以不会有内容输出 31 //} 32 33 Console.ReadKey(); 34 }
三、泛型集合
List,Dictionary。注意遍历Dictionary的key,value时,可以用KeyValuePair<K,V>。