您的位置: 网站首页 > 程序开发 > C#程序设计 > 第5章 集合 > 【5.1 System.Collections命名空间】

5.1 System.Collections命名空间

 

本章主要介绍在C#中使用集合的相关知识。与数组相比,集合是另一类组合的元素。集合与数组既有相同点,又有不同点。在某些情况下,使用集合更为方便;而在某些情况下,使用数组效率更高。本章将对常用的集合进行介绍,包括ArrayListQueueStackHashTableSortedList等。

本章主要内容

&        System.Collections命名空间介绍

&        ArrayList类的使用

&        Queue类的使用

&        Stack类的使用

&        HashTable类的使用

&        SortedList类的使用

5.1  System.Collections命名空间

System.Collections命名空间是集合类型的主要命名空间。集合是一类具有某种性质元素的组合。通俗地讲,集合就是“一堆东西”,这些“东西”被称作元素。在C#中,集合主要是指System.Collections命名空间下的类。

System.Collections命名空间下包含若干类、接口和结构,其中包含的类如下。

·    ArrayList:使用大小可按需动态增加的数组。

·    BitArray:管理位值的压缩数组,该值表示为布尔值。

·    CaseInsensitiveComparer:比较两个对象是否相等,比较时忽略字符串的大小写。

·    CaseInsensitiveHashCodeProvider:使用忽略字符串大小写的哈希算法,为对象提供哈希代码。

·    CollectionBase:为强类型集合提供abstract基类。

·    Comparer:比较两个对象是否相等,其中字符串比较是区分大小写的。

·    DictionaryBase:为键/值对的强类型集合提供abstract基类。

·    Hashtable:表示键/值对的集合。这些键/值对根据键的哈希代码进行组织。

·    Queue:表示对象的先进先出集合。

·    ReadOnlyCollectionBase:为强类型非泛型只读集合提供abstract基类。

·    SortedList:表示键/值对的集合,这些键值对按键排序并可按照键和索引访问。

·    Stack:表示对象的简单的后进先出非泛型集合。

可以看到,除了集合类外,还包含一些辅助功能的相关类。System.Collections命名空间下的接口如下。

·    ICollection:定义所有非泛型集合的大小、枚举数和同步方法。

·    IComparer:公开一种比较两个对象的方法。

·    IDictionary:表示键/值对的非通用集合的接口。

·    IDictionaryEnumerator:枚举非泛型字典的元素。

·    IEnumerable:公开枚举数,该枚举数支持在非泛型集合上进行简单迭代。

·    IEnumerator:支持对非泛型集合的简单迭代。

·    IEqualityComparer:定义方法以支持对象的相等比较。

·    IHashCodeProvider:使用自定义哈希函数为对象提供哈希代码。

·    IList:表示可按照索引单独访问的对象的非泛型集合。

在用户需要实现自己的集合类型时,会用到这些接口。System.Collections命名空间下还包含一个结构如下。

·    DictionaryEntry:定义可设置或检索的字典键/值对。

以上是System.Collections命名空间的概貌。其中本章涉及的有ArrayListQueueStackHashTableSortedList