共用方式為


常用的集合類型

集合類型代表收集數據的不同方式,例如哈希表、佇列、堆疊、包、字典和清單。

所有集合都是直接或間接地以ICollectionICollection<T>介面為基礎。 IListIDictionary 及其泛型對應專案全都衍生自這兩個介面。

在以 IListICollection 直接為基礎的集合中,每個元素只包含一個值。 這些類型包括:

在以IDictionary接口為基礎的集合中,每個元素都包含索引鍵和值。 這些類型包括:

類別 KeyedCollection<TKey,TItem> 是獨特的,因為它是一個將索引鍵嵌入到值中的值清單。 因此,其行為就像清單和字典一樣。

當您需要有效率的多線程集合存取時,請使用 命名空間中的 System.Collections.Concurrent 泛型集合。

QueueQueue<T> 類別會提供先出清單。 StackStack<T>類別提供後進先出清單。

強式輸入

泛型集合是強式輸入的最佳解決方案。 例如,將任何非 Int32 類型的元素加入至 List<Int32> 集合時,會導致編譯時期錯誤。 不過,如果您的語言不支援泛型, System.Collections 命名空間會包含您可以擴充的抽象基類,以建立強型別的集合類別。 這些基類包括:

集合的多樣性

集合會因儲存、排序及比較元素的方式,以及其執行搜尋的方式而有所不同。

SortedList類別和SortedList<TKey,TValue>泛型類別提供Hashtable類別及Dictionary<TKey,TValue>泛型類別的排序版本。

除了 Array 允許不是以零起始的陣列之外,所有集合都使用零起始的索引。

您可以藉由索引鍵或元素的索引來存取 SortedListKeyedCollection<TKey,TItem> 的元素。 您只能透過元素的鍵值來存取 HashtableDictionary<TKey,TValue> 的元素。

搭配集合類型使用LINQ

LINQ to Objects 功能提供一般模式來存取任何實作 IEnumerableIEnumerable<T> 型別的記憶體內部物件。 LINQ 查詢在標準建構方面有數個優點,例如 foreach 迴圈:

  • 它們簡潔明瞭,更容易理解。
  • 他們可以篩選、排序和群組數據。
  • 它們可以改善效能。

如需詳細資訊,請參閱 LINQ to Objects (C#)LINQ to Objects (Visual Basic)Parallel LINQ (PLINQ)。

標題 說明
集合和數據結構 討論 .NET 中可用的各種集合類型,包括堆棧、佇列、清單、陣列和字典。
哈希表和字典集合類型 描述泛型和非泛型哈希型字典類型的功能。
已排序的集合類型 描述提供清單和集合排序功能的類別。
泛型 描述泛型功能,包括 .NET 所提供的泛型集合、委派和介面。 提供 C#、Visual Basic 和 Visual C++ 功能文件的連結,以及支援反映等技術。

參考文獻

System.Collections

System.Collections.Generic

System.Collections.ICollection

System.Collections.Generic.ICollection<T>

System.Collections.IList

System.Collections.Generic.IList<T>

System.Collections.IDictionary

System.Collections.Generic.IDictionary<TKey,TValue>