C# 集合
C#中的數(shù)組實(shí)現(xiàn)為System.Array類的實(shí)例,它們只是集合類(Collection Class)中的一種類型。集合類一般用于處理對(duì)象列表,其功能比簡(jiǎn)單數(shù)組要多,功能大多是通過(guò)實(shí)現(xiàn)System.Collections名稱空間中的接口而獲得的,因此集合的語(yǔ)法己經(jīng)標(biāo)準(zhǔn)化了。這個(gè)名稱空間還包含其他一些有趣的東西,例如,以不同于SystemAmy的方式實(shí)現(xiàn)這些接口的類。
集合的功能(包括基本功能,例如,用[index]語(yǔ)法訪問(wèn)集合中的項(xiàng))可以通過(guò)接口來(lái)實(shí)現(xiàn),所以不僅可以使用基本集合類,例如Sj/stem.Array,還可以創(chuàng)建自己的定制集合類。這些集合可以專用于要枚舉的對(duì)象(即要從中建立集合的對(duì)象)。這么做的一個(gè)優(yōu)點(diǎn)是定制的集合類可以是強(qiáng)類型化的。也就是說(shuō),從集合中提取項(xiàng)時(shí),不需要把它們轉(zhuǎn)換為正確類型。另一個(gè)優(yōu)點(diǎn)是提供專用的方法,例如,可以提供獲得項(xiàng)子集的快捷方法。在撲克牌示例中,可以添加一個(gè)方法,來(lái)獲得特定花色中的所有Card項(xiàng)。
System.Collections名稱空間中的以下幾個(gè)接口提供了基本的集合功能:
?lEnumerable——可以迭代集合中的項(xiàng)。
?ICoIlection——繼承于IEnumerable??梢垣@取集合中項(xiàng)的個(gè)數(shù),并能把項(xiàng)復(fù)制到一個(gè)簡(jiǎn)單的數(shù)組類型中。
?IList——繼承于IEnumerable和ICoIlection。提供了集合的項(xiàng)列表,允許訪問(wèn)這些項(xiàng),并提供其他一些與項(xiàng)列表相關(guān)的基本功能。
?IDictionary——繼承于IEnumerable和ICoIlection。類似于IList,但提供了可通過(guò)鍵值(而不是索引)訪問(wèn)的項(xiàng)列表。
System.Array類實(shí)現(xiàn)了IList, ICollection和IEnumerable,但不支持IList的一些更高級(jí)功能,它表示大小固定的項(xiàng)列表。
點(diǎn)擊加載更多評(píng)論>>