.NET 中的泛型集合
.NET 類別庫提供 System.Collections.Generic 和 System.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# 和 Visual Basic 中,不需要明確使用 Nullable<T>,因為語言已具有可為 Null 型別的語法。 請參閱可為 Null 的實值型別 (C# 參考資料) 或可為 Null 的實值型別 (Visual Basic)。
ArraySegment<T> 泛型結構提供一個方法,將項目範圍限定在任何類型之以零為起始的一維陣列中。 泛型型別參數是陣列的項目類型。
如果您的事件遵循 .NET 所使用的事件處理模式,則 EventHandler<TEventArgs> 泛型委派不需要宣告委派類型來處理事件。 例如,假設您已建立衍生自 EventArgs 的 MyEventArgs
類別來保存事件的資料。 您可以接著依照下列方式來宣告事件:
public:
event EventHandler<MyEventArgs^>^ MyEvent;
public event EventHandler<MyEventArgs> MyEvent;
Public Event MyEvent As EventHandler(Of MyEventArgs)