集合和泛型

  • 集合(泛型集合和非泛型集合)

非泛型集合类(主要位于System.Collections命名空间)

System.Collections中的类:

ArrayList       表示动态大小的对象集合,其中的对象是按顺序列出的

BitArray         管理位值的简单数组,位值用布尔值表示,true表示该位打开(1),false表示该位关闭(0)

Hashtable     表示键值对的集合,按键的散列值进行组织

Queue           表示标准的先进先出(FIFO)列

SortedList     表示键值对的集合,按键排序,可通过键和索引进行访问

Stack            后进先出的(LIFO)的栈,提供压入和弹出功能

泛型集合类(主要位于System.Collections.Generic命名空间)-*-升级版本-*-

System.Collections.Generic中的类:

Dictionary           一个键/值对泛型集合

LinkedList                              一个双向链表的泛型实现

List                                        一个可动态改变大小的顺序列表

Queue                                   一个先入先出(FIFO)列表的泛型实现

SortedDictionary 一个排序的键/值对集合的泛型实现

SortedSet                              一个排序的不重复的对象集合

Stack                                    一个后入先出(LIFO)列表的泛型实现

装箱:显式的将值类型分配给System.Object变量的过程。

拆箱:把保存在对象引用中的值转换回栈上的相应值类型。

集合初始化语法:该C#语言特性让你可以用与填充基础数组类似的语法。

//初始化整数的泛型List<>
List myGenericList = new List {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};

对象初始化语法和集合初始化语法混合使用。 

//对象初始化语法与集合初始化语法混合使用
List myListOfPoints = new List
{
    new Point {X = 2, Y = 3},
    new Point {X = 3, Y = 4}
};

 

  • 泛型

只有类、结构、接口和委托可以使用泛型,枚举类型不可以。

  1. 泛型类、泛型结构
  2. 泛型方法

泛型中的类型参数约束:

where T :  struct          必须为结构。

where子句指定类型参数需遵循某种约束。

你可能感兴趣的:(精通C#)