Share via


使用集合管理物件 (Visual Basic)

集合相當適用於管理各種不同的物件。 您可以將物件加入集合或從中移除,依據索引或索引鍵來擷取它們,並使用 For Each...Next 陳述式 (Visual Basic) 逐一查看集合中的所有項目。

型別不安全的集合

不過,集合的這種彈性卻可能減低您類別的強固性。 例如,Visual Basic 提供的集合會將其所有項目儲存為型別 Object,因此您可以加入任何資料型別的項目。 您無法確定加入的資料型別皆適當無誤,因此當您存取項目時,必須將該項目從 Object 轉換成需要的資料型別。

特殊的集合

.NET Framework 會提供 Visual Basic 集合的多種選擇。 System.Collections 命名空間包含具有特定功能的集合類別,例如佇列或排序清單,而 System.Collections.Specialized 命名空間則包含具有特殊性質的集合類別,例如 HybridDictionary

型別安全的集合

若要避免型別 Object 項目的缺點,您可以使用 System.Collections.Generic 命名空間的「泛型」(Generic) 集合。 這些集合能提供「型別安全」(Type Safety),並讓您將集合項目限制為唯一的特定資料型別。

使用集合的方法

一般來說,使用集合來實作物件管理有三種方式。 考量定義 widgetRepository 類別的應用程式,此應用程式會組織並公開 widget 物件給用戶端元件。 若要實作集合的 widgetRepository,您可以使用下列其中一種策略。

  • **使用集合型別。**在 widgetRepository 類型中,宣告 widgetsColl 變數做為 Collection 類別的執行個體,或 System.CollectionsSystem.Collections.GenericSystem.Collections.Specialized 命名空間的其中一個類別。 使變數成為公用變數,並使用 New 運算子 (Visual Basic) 關鍵字建立集合的執行個體。 如需詳細資訊,請參閱 HOW TO:在類別中定義集合 (Visual Basic)

  • **繼承集合基底類別。**繼承 CollectionBase 類別來實作自己的 widgetsColl 類別。 在 widgetRepository 類別中,請定義傳回該執行個體的 widgetsColl 類別和屬性的執行個體。 如需詳細資訊,請參閱 HOW TO:在類別中定義集合 (Visual Basic)

  • **自己撰寫集合。**撰寫適當的類別及程序,即可在 widgetRepository 類別中實作集合功能。 如果類別需要具有集合型別的功能,但又不繼承任何現有的集合類別,則這個方法會是最適用的。 這個情況不常發生,但是您的類別有時會需要繼承自類別而非集合類別。 由於無法從一個以上的類別繼承,您必須定義並實作集合成員。

請參閱

參考

Collection

System.Collections

System.Collections.Generic

System.Collections.Specialized

概念

在 Visual Basic 中管理物件群組