Share via


.NET Framework 中的泛型集合

本主題將提供泛型集合類別的概觀,以及 .NET Framework 中的其他泛型型別。

.NET Framework 中的泛型集合

.NET Framework 類別庫提供 System.Collections.GenericSystem.Collections.ObjectModel 命名空間中的許多泛型集合類別。 如需這些類別的詳細資訊,請參閱常用的集合型別

System.Collections.Generic

許多泛型集合型別是非泛型型別的直接類比。 Dictionary<TKey, TValue> 是泛型版本的 Hashtable。它會使用泛型結構 KeyValuePair<TKey, TValue> 而非 DictionaryEntry 來進行列舉。

List<T>ArrayList 的泛型版本。 有一些泛型 Queue<T>Stack<T> 類別會對應到非泛型版本。

SortedList<TKey, TValue> 有泛型和非泛型版本。 這兩個版本是字典和清單的混合。 SortedDictionary<TKey, TValue> 泛型類別單純為字典,而且沒有非泛型對應項目。

LinkedList<T> 泛型類別是真正的連結清單, 它沒有任何非泛型的對應項目。

System.Collections.ObjectModel

Collection<T> 泛型類別提供了基底類別來衍生您自己的泛型集合型別。 ReadOnlyCollection<T> 類別提供了一個簡單的方法從任何實作 IList<T> 泛型介面的型別中產生唯讀集合。 KeyedCollection<TKey, TItem> 泛型類別提供了一個方法來儲存物件 (其中包含物件的索引鍵)。

其他泛型型別

Nullable<T> 泛型結構讓您在使用實值型別時,可將其指派為 null。 當您使用資料庫查詢,而其中包含實值型別的欄位可能遺失時,這樣的處理方式會很實用。 泛型型別參數可以是任何實值型別。

注意事項注意事項

在 C# 中,不需要明確使用 Nullable<T>,因為這個語言有可為 Null 的型別之語法。

ArraySegment<T> 泛型結構提供了一個方法來限定任何型別之以零起始的一維陣列中的元素範圍。 泛型型別參數是此陣列元素的型別。

EventHandler<TEventArgs> 泛型委派可讓您不需要宣告委派型別來處理事件,但前提是您的事件是跟隨著 .NET Framework 所使用的事件處理模式。 例如,假設您已建立衍生自 EventArgs 的 MyEventArgs 類別來保存事件的資料; 然後,您可以依照下列方式來宣告事件:

Public Event MyEvent As EventHandler(Of MyEventArgs)
public event EventHandler<MyEventArgs> MyEvent;
public:
    event EventHandler<MyEventArgs^>^ MyEvent;

請參閱

參考

System.Collections.Generic

System.Collections.ObjectModel

概念

.NET Framework 中的泛型

管理陣列和清單的泛型委派

泛型介面

泛型的優點和限制