我是C#的新手。在ASP.NET 3.5(C#3.0)中工作。爲了開發有效的代碼,我需要熟悉哪些集合類?像IList,還有對應的IList<T>
,List
,List<T>
夠了嗎?收藏集 - 要記住的項目
非常感謝大家,給我一個很好的指導。
我是C#的新手。在ASP.NET 3.5(C#3.0)中工作。爲了開發有效的代碼,我需要熟悉哪些集合類?像IList,還有對應的IList<T>
,List
,List<T>
夠了嗎?收藏集 - 要記住的項目
非常感謝大家,給我一個很好的指導。
List<T>
除了和Dictionary<TKey, TValue>
我還要催促你熟悉IEnumerable<T>
接口(以及它周圍的擴展方法),首先,露出IEnumerable<T>
作爲第一手選擇的習慣,直到它被證明你需要從方法中返回一個「更豐富」的接口。
每個系列都有其優點和用途。我發現我最常使用List<T>
和Dictionary<TKey, TValue>
。只要知道這兩點,你就可以相當有效。
然而,要達到最有效的效果,您應該至少熟悉所有這些目的,以便您可以選擇正確的目標。例如,你的收藏是否代表了一系列要做的事情?或者是堆棧?一個Item的價值是否也作爲它的身份,你有很多它們,你需要快速檢索它們,那麼Hashset可能就是你需要的。
你需要熟悉哪些取決於你需要做什麼。
如果你想了解收集類,然後檢查出System Collections page on MSDN。
在我看來,很好地瞭解實現ICollection,IDictionary,IEnumerable和IList的所有內容。
Dictionary<K,V>
and OrderedDictionary<K,V>
對於存儲強類型鍵值對是很有用的。
大多數時候我堅持使用List<>
和Dictionary<>
,但隨着LINQ to Objects的推出,我發現我很少需要實例化這些類。我也通過我的名單作爲IEnumerable<>
更多。
有關可用收藏的完整摘要,請參閱Commonly Used Collection Types。
新集類HashSet<T>
它實現ICollection<T>
,併爲Add(...)
返回false,如果您要添加預先存在的價值,也是一個很好的一個工具盒