[generics] StringDictionary vs Dictionary <string,string>


2 Answers

還有一點。

返回null:

StringDictionary dic = new StringDictionary();
return dic["Hey"];

這引發了一個異常:

Dictionary<string, string> dic = new Dictionary<string, string>();
return dic["Hey"];
Question

有誰知道System.Collections.Specialized.StringDictionary對象和System.Collections.Generic.Dictionary之間的實際差異是什麼?

我過去一直都在使用它們,而沒有考慮哪種方法表現更好,與Linq更好地工作,或提供任何其他好處。

關於為什麼我應該使用一個而不是另一個的任何想法或建議?




除了是一個更“現代”的類之外,我注意到Dictionary比StringDictionary有更大的內存效率。




正如Reed Copsey所指出的那樣,StringDictionary會降低你的關鍵值。 對我來說,這完全是出乎意料的,並且是一個表演者。

private void testStringDictionary()
{
    try
    {
        StringDictionary sd = new StringDictionary();
        sd.Add("Bob", "My name is Bob");
        sd.Add("joe", "My name is joe");
        sd.Add("bob", "My name is bob"); // << throws an exception because
                                         //    "bob" is already a key!
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}

我正在添加這個回复,以吸引更多關注這個巨大的差異,IMO比現代與老派差異更重要。






Related