集合
数组是固定大小的,集合是动态大小的。集合有:数组,集合类List<T>,队列,栈,链表,字典和集。
集合接口和类型
大多数集合类都在System.Collections和System.Collections.Generic名称空间中。
泛型集合位于System.Collections.Generic。
专用特定类型的集合类位于System.Collections.Specialized
线程安全的集合类位于System.Collections.Concurrent
不可变的集合类位于System.Collections.Immutable
列表
泛型类List<T>。这个类实现了IList、ICollection、IEnumerbale、IList<T>、ICollection<T>、IEnumerbale<T>接口。
创建列表
调用默认的构造函数,就可以创建列表对象。在泛型类List<T>中,必须为声明为列表的值指定类型。
使用默认的构造函数创建一个空列表。 元素添加到列表中后,列表的容量就会扩大为可接纳 4个元素。 如果添加了第 5个元素,列表的大小就重新设置为包含 8个元素。 如果 8个元素还不够,列表的大小就重新设置为包含 16个元素。 每次都会将列表的容量重新设置为原来的2倍 。
如果事先知道列表中元素的个数,就可以用构造函数定义其容量。 如果该容量不足以容纳要添加的元素,就把集合的大小重新设置,每次都是原来的2倍。
容量与集合中元素的个数不同。集合中的元素个数可以用Count属性读取。当然,容量总是大于或等于元素个数。只要不把元素添加到列表中,元素个数就是0
如果已经将元素添加到列表中,且不希望添加更多的元素,就可以调用TrimExcess()方法,去除不需要的容量。但是,因为重新定位需要时间,所以如果元素个数超过了容量的90%,TrimExcess()方法就什么也不做。
集合初始值设定项
使用集合初始值设定项,可以在初始化集合时,在花括号中给集合赋值。
添加元素
使用Add()方法可以给列表添加元素。
使用AddRange()方法可以一次性给列表添加多个元素。
插入元素
使用Insert()方法可以给列表插入元素。
使用InsertRange()方法可以一次性给列表插入多个元素。
访问元素
使用索引器可以访问集合中的数据。
用Count属性可以确定元素个数。
删除元素
使用RemoveAt()方法可以删除集合中的元素。
使用RemoveAll()方法可以删除集合中的全部元素。
搜索
可以用IndexOf()、LastIndexOf()、FindIndex()、FindLastIndex()、Find()和FindLast()查找集合中的元素
检查元素是否存在使用Exists()方法。
排序
可以使用Sort()方法对集合中的元素进行排序。
只读集合
使用List<T>集合中的AsReadOnly()方法返回ReadOnlyCollection<T>类型的对象。