System.Collections.Hashtable對象是否已過時?哈希表對象仍然有用嗎?
隨着C#v2和v3泛型的實現和改進,我發現Hashtable比一般的Dictionary更適合了很長一段時間。從字面上看,我不記得上次我使用Hashtable。
只是想知道是否有人發現其中一個Hashtable仍然是適當或優先執行併爲決策提供依據的情況下 - ,易用性,性能,集合的大小,對象類型等
UPDATE :意思是將這個問題限制在C#中。
System.Collections.Hashtable對象是否已過時?哈希表對象仍然有用嗎?
隨着C#v2和v3泛型的實現和改進,我發現Hashtable比一般的Dictionary更適合了很長一段時間。從字面上看,我不記得上次我使用Hashtable。
只是想知道是否有人發現其中一個Hashtable仍然是適當或優先執行併爲決策提供依據的情況下 - ,易用性,性能,集合的大小,對象類型等
UPDATE :意思是將這個問題限制在C#中。
除了在現有的API中需要一個Hashtable(比如還不支持泛型類型的語言)。如果您需要從COM訪問它們,您也可能需要使用它們。我相信Hashtable是COM可見的,而Dictionary不是。
除此之外,你通常希望使用字典<>,因爲它避免了拳擊(性能命中)並提供了類型安全性。
啊,COM互操作。好點子。 – jro 2009-10-19 17:55:39
對於處理不支持泛型類型的語言或語言版本的情況,散列表仍然有用。
編輯
對於C#2.0或更高版本,Hashtable
真的只是有用的在以下情況下
IDictionary
實例的前語義返回null主場迎戰扔在表中沒有鑰匙的情況。Hashtable
值Hashstable交易仍然是作爲一個通用的地圖有用的,如果你堅持用C#1.0 :)
看起來像社區wiki類型的問題。如果每個人都認爲這個問題很有用,將會添加。 – jro 2009-10-19 17:45:10