常用的集合型別
更新:2007 年 11 月
集合型別是資料集合的一般變形,例如雜湊表、佇列、堆疊、字典和清單。
集合是以 ICollection 介面、IList 介面、IDictionary 介面或這些介面的泛型版本為基礎。IList 介面和 IDictionary 介面都衍生自 ICollection 介面;因此所有集合都是直接或間接以 ICollection 介面為基礎。在以 IList 介面為基礎的集合 (例如 Array、ArrayList 或 List<T>) 或直接以 ICollection 介面為基礎的集合 (例如 Queue、Stack 或 LinkedList<T>) 中,每個元素都只含一個值。在以 IDictionary 介面 (例如 Hashtable 和 SortedList 類別,或者 Dictionary<TKey, TValue> 和 SortedList<TKey, TValue> 泛型類別) 為基礎的集合中,每個元素都包含一個索引鍵和一個值。KeyedCollection<TKey, TItem> 類別是唯一的,因為它是一個數值清單,且數值中內嵌有索引鍵,因此它的行為既像清單也像字典。
泛型集合是強型別的最佳解決方案。但若您的語言不支援泛型,System.Collections 命名空間 (Namespace) 便會包含基底集合,例如 CollectionBase、ReadOnlyCollectionBase 和 DictionaryBase,這些都是抽象基底類別,可以擴充來建立強型別 (Strongly Typed) 的集合類別。
集合可以變動,取決於如何儲存元素、如何將它們排序、如何執行搜尋,以及如何進行比較。Queue 類別和 Queue<T> 泛型類別提供先進先出清單,而 Stack 類別和 Stack<T> 泛型類別則提供後進先出清單。SortedList 類別和 SortedList<TKey, TValue> 泛型類別提供 Hashtable 類別和 Dictionary<TKey, TValue> 泛型類別的排序版本。Hashtable 或 Dictionary<TKey, TValue> 的元素只能藉元素的索引鍵來存取,但 SortedList 或 KeyedCollection<TKey, TItem> 的元素則可藉索引鍵或元素索引其中之一來存取。所有集合中的索引都是以零起始,除了 Array 之外,它允許不是以零起始的陣列。
只要物件型別實作 IEnumerable 或 IEnumerable<T>,LINQ to Objects 功能就可讓您使用 LINQ 查詢以存取記憶體中的物件。LINQ 查詢提供一般模式以存取資料,比標準的 foreach 迴圈 (Loop) 更精簡、可讀性更高,並提供篩選、排序和群組功能。LINQ 查詢也可以提升效能。如需詳細資訊,請參閱 LINQ to Objects。
在本節中
Array 集合型別
說明可讓陣列被視為是集合的陣列功能。ArrayList 和 List 集合型別
說明泛型和非泛型清單的功能,這是最常使用的集合型別。Hashtable 和 Dictionary 集合型別
說明泛型和非泛型雜湊式字典型別的功能。SortedList 和 SortedDictionary 集合型別
說明排序的字典以及結合字典與清單功能的混合 (Hybrid) 型別。Queue 集合型別
說明泛型和非泛型佇列的功能。Stack 集合型別
說明泛型和非泛型堆疊的功能。HashSet 集合型別
說明泛型 HashSet<T> 集合型別。HashSet 和 LINQ 設定作業
描述 HashSet<T> 集合型別提供的設定作業和 LINQ 設定作業。
參考
System.Collections
提供 System.Collections 命名空間的參考文件說明,這個命名空間包含了會定義不同物件集合的介面和類別。System.Collections.Generic
提供 System.Collections.Generic 命名空間的參考文件說明,這個命名空間包含了會定義一般集合的介面和類別。System.Collections.ICollection
說明 ICollection 類別的主要功能,此類別會定義所有非泛型集合的大小、列舉值與同步方法。System.Collections.Generic.ICollection<T>
說明 ICollection<T> 類別的主要功能,此類別會定義處理泛型集合的方法。System.Collections.IList
說明 IList 類別的主要功能,此類別代表了可以經由索引個別存取的非泛型物件集合。System.Collections.Generic.IList<T>
說明 IList<T> 類別的主要功能,此類別代表了可以經由索引個別存取的物件集合。System.Collections.IDictionary
說明 IDictionary 類別的主要功能,此類別代表了索引鍵/值組的非泛型集合。System.Collections.Generic.IDictionary<TKey, TValue>
說明 IDictionary<TKey, TValue> 類別的主要功能,此類別代表了索引鍵/值組的泛型集合。
相關章節
集合和資料結構
討論 .NET Framework 中可用的各種集合型別,包括堆疊、佇列、清單、陣列和結構。.NET Framework 中的泛型
描述泛型功能,其中包括 .NET Framework 所提供的泛型集合、委派和介面。此外,還提供連結以連至 C#、Visual Basic 和 Visual C++ 的功能說明文件,以及連至像是反映 (Reflection) 等支援技術的說明文件。