2008-10-14 37 views
0

我發現了許多關於IEnumeratorIEnumerable,ICollection,IList及其通用對應物的文件和建議。可悲的是,我還沒有找到解釋整個接口層次結構的教程或書籍,這些接口的通用實現是每種類型的最佳用法。什麼是關於泛型及其接口的最佳資源?

什麼是關於泛型,它們的接口以及C#中推薦使用的示例的最佳知識源?

+0

你應該重新標記這是集合。泛型並不總是用於集合。 – 2008-12-16 06:17:16

回答

3

我明白他們的主要方式就是看他們的界面。

繼承是這樣的:

的IList:ICollection的:IEnumerable的

當你仰望的IEnumerable的接口,注意它只有能夠循環通過一堆物品所必需的最低限度。它沒有計數或其他任何東西。 IEnumerable運作良好,即使你正在看的只是一條流過電線的流。

ICollection添加計數。如果你正在實施某種集合,並且容易知道它的大小,那麼你應該實現這個。在這種情況下,通用接口稍有不同。 ICollection <T>也有通過添加和刪除成員來修改集合的方法。一個無序的集合將是ICollection的一個好候選。

IList增加了按索引獲取和設置集合成員的功能。當項目順序顯着時使用此項。當你有索引時,你可以做一些事情,比如交換第4項和第5項來改變它們的順序。

0

你只是錯過了一個:)

IDictionary的:IList中:ICollection的:IEnumerable的

+0

IDictionary它與其他接口有點不同 - 它似乎只是一個鍵/值對(與ICollection >相同的功能)的集合,除非我錯了。 – alexandrul 2008-10-14 20:30:08

相關問題