2009-10-29 96 views
1

我是C#的新手。在ASP.NET 3.5(C#3.0)中工作。爲了開發有效的代碼,我需要熟悉哪些集合類?像IList,還有對應的IList<T>List,List<T>夠了嗎?收藏集 - 要記住的項目

非常感謝大家,給我一個很好的指導。

回答

7
List<T>

除了和Dictionary<TKey, TValue>我還要催促你熟悉IEnumerable<T>接口(以及它周圍的擴展方法),首先,露出IEnumerable<T>作爲第一手選擇的習慣,直到它被證明你需要從方法中返回一個「更豐富」的接口。

0

每個系列都有其優點和用途。我發現我最常使用List<T>Dictionary<TKey, TValue>。只要知道這兩點,你就可以相當有效。

然而,要達到最有效的效果,您應該至少熟悉所有這些目的,以便您可以選擇正確的目標。例如,你的收藏是否代表了一系列要做的事情?或者是堆棧?一個Item的價值是否也作爲它的身份,你有很多它們,你需要快速檢索它們,那麼Hashset可能就是你需要的。

0

你需要熟悉哪些取決於你需要做什麼。

如果你想了解收集類,然後檢查出System Collections page on MSDN

在我看來,很好地瞭解實現ICollection,IDictionary,IEnumerable和IList的所有內容。

0

Dictionary<K,V> and OrderedDictionary<K,V>對於存儲強類型鍵值對是很有用的。

1

大多數時候我堅持使用List<>Dictionary<>,但隨着LINQ to Objects的推出,我發現我很少需要實例化這些類。我也通過我的名單作爲IEnumerable<>更多。

有關可用收藏的完整摘要,請參閱Commonly Used Collection Types

0

新集類HashSet<T>它實現ICollection<T>,併爲Add(...)返回false,如果您要添加預先存在的價值,也是一個很好的一個工具盒