位置:首頁(yè) > 軟件操作教程 > 編程開(kāi)發(fā) > C# > 問(wèn)題詳情

C# 集合

提問(wèn)人:劉團(tuán)圓發(fā)布時(shí)間:2020-12-07

    C#中的數(shù)組實(shí)現(xiàn)為System.Array類(lèi)的實(shí)例,它們只是集合類(lèi)(Collection Class)中的一種類(lèi)型。集合類(lèi)一般用于處理對(duì)象列表,其功能比簡(jiǎn)單數(shù)組要多,功能大多是通過(guò)實(shí)現(xiàn)System.Collections名稱(chēng)空間中的接口而獲得的,因此集合的語(yǔ)法己經(jīng)標(biāo)準(zhǔn)化了。這個(gè)名稱(chēng)空間還包含其他一些有趣的東西,例如,以不同于SystemAmy的方式實(shí)現(xiàn)這些接口的類(lèi)。

    集合的功能(包括基本功能,例如,用[index]語(yǔ)法訪問(wèn)集合中的項(xiàng))可以通過(guò)接口來(lái)實(shí)現(xiàn),所以不僅可以使用基本集合類(lèi),例如Sj/stem.Array,還可以創(chuàng)建自己的定制集合類(lèi)。這些集合可以專(zhuān)用于要枚舉的對(duì)象(即要從中建立集合的對(duì)象)。這么做的一個(gè)優(yōu)點(diǎn)是定制的集合類(lèi)可以是強(qiáng)類(lèi)型化的。也就是說(shuō),從集合中提取項(xiàng)時(shí),不需要把它們轉(zhuǎn)換為正確類(lèi)型。另一個(gè)優(yōu)點(diǎn)是提供專(zhuān)用的方法,例如,可以提供獲得項(xiàng)子集的快捷方法。在撲克牌示例中,可以添加一個(gè)方法,來(lái)獲得特定花色中的所有Card項(xiàng)。


System.Collections名稱(chēng)空間中的以下幾個(gè)接口提供了基本的集合功能:

    ?lEnumerable——可以迭代集合中的項(xiàng)。

    ?ICoIlection——繼承于IEnumerable。可以獲取集合中項(xiàng)的個(gè)數(shù),并能把項(xiàng)復(fù)制到一個(gè)簡(jiǎn)單的數(shù)組類(lèi)型中。

    ?IList——繼承于IEnumerable和ICoIlection。提供了集合的項(xiàng)列表,允許訪問(wèn)這些項(xiàng),并提供其他一些與項(xiàng)列表相關(guān)的基本功能。

    ?IDictionary——繼承于IEnumerable和ICoIlection。類(lèi)似于IList,但提供了可通過(guò)鍵值(而不是索引)訪問(wèn)的項(xiàng)列表。

System.Array類(lèi)實(shí)現(xiàn)了IList, ICollection和IEnumerable,但不支持IList的一些更高級(jí)功能,它表示大小固定的項(xiàng)列表。

繼續(xù)查找其他問(wèn)題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部