C# 集合(Collection)

        集合(Collection)类是专门用于数据存储和检索的类.这些类提供了对栈(stack),队列(queue),列表(list)和哈希表(hash table)的支持。大多数集合类实现了相同的接口。

        集合(Collection)类服务于不同的目的,如为元素动态分配内存,基于索引访问列表项等等.这些类创建 Object 类的对象的集合.在C#中,Object 类是所有数据类型的基类.


    各种集合以及用法:

一.动态数组(ArrayList):

        它代表了可被单独索引的对象的有序集合.

        它基本上可以替代一个数组.但是,与数组不同的是,您可以使用索引在指定的位置添加和移除项目,动态数组会自动重新调整它的大小.它也允许在列表中进行动态内存分配,增加,搜索,排序各项.

1.属性:

Capacity:获取或设置 ArrayList 可以包含的元素个数.

Count:获取ArrayList中实际包含的元素个数 .

IsFixedSize:获取一个值,表示ArrayList是否有固定的大小.  

IsReadOnly:获取一个值,表示ArrayList是否只读.

Item:获取或设置指定索引处的元素.

2.方法:

public virtual int Add(object value);在ArrayList的末尾添加一个对象.

public virtual void AddRange(ICollection c);在ArrayList的末尾添加ICollection的元素.

public virtual void Clear();从ArrayList中移除所有元素.

public virtual bool Contains(object item);判断某个元素是否在ArrayList中.

public virtual ArrayList GetRange(int index,int count);返回一个ArrayList,表示源ArrayList中元素的子集.

public virtual int IndexOf(object);返回某个值在ArrayList中第一次出现的索引,索引从0开始.

public virtual void Insert(int index,object value);在ArrayList的指定索引处,插入一个元素.

public virtual void InsertRange(int index,ICollection c);在ArrayList的指定索引处,插入某个集合的元素.

public virtual void Remove(object obj); 从ArrayList 移除第一次出现的指定对象.

public virtual void RemoveAt(int index);移除ArrayList的指定索引处的元素.

public virtual void RemoveRange(int index,int count);从ArrayList中移除某个范围的元素.
public virtual void
Reverse();逆转ArrayList中元素的顺序.
public virtual void
SetRange(int index,ICollection c); 复制某个集合的元素到ArrayList 中某个范围的元素上.
public virtual void
Sort();对ArrayList中的元素进行排序.

public virtual void TrimToSize();设置容量为ArrayList中元素的实际个数.

二.哈希表(HashTable):

        它使用键来访问集合中的元素

        当您使用键访问元素时,则使用哈希表,而且您可以识别一个有用的键值.哈希表中的每一项都有一个键/值对.键用于访问集合中的项目.

1.属性:

Count:获取Hashtable中包含的键值对个数.
IsFixedSize:获取一个值,表示Hashtable是否具有固定大小.
IsReadOnly:获取一个值,表示Hashtable是否只读.
Item:获取或设置与指定的键相关的值.
Keys:获取一个ICollection,包含Hashtable中的键.
Values:获取一个ICollection,包含Hashtable中的值.

2.方法:

public virtual void Add(object key, object value);向Hashtable添加一个带有指定的键和值的元素.
public virtual void
Clear(); 从Hashtable中移除所有的元素.
public virtual bool
ContainsKey(object key); 判断Hashtable是否包含指定的键.
public virtual bool
ContainsValue(object value); 判断Hashtable是否包含指定的值.
public virtual void
Remove(object key);从Hashtable中移除带有指定的键的元素.

三.排序列表(SortedList):

        SortedList类代表了一系列按照键来排序的键/值对,这些键值对可以通过键和索引来访问.

        排序列表是数组和哈希表的组合.它包含一个可使用键或索引访问各项的列表.如果您使用索引访问各项,则它是一个动态数组(ArrayList)如果您使用键访问各项,则它是一个哈希表(HashTable).集合中的各项总是按键值排序.

1.属性:

Capacity:获取或设置SortedList 的容量.
Count:获取 SortedList中的元素个数.
IsFixedSize:获取一个值,表示SortedList是否具有固定大小.
IsReadOnly:获取一个值,表示SortedList是否只读.
Item:获取或设置与SortedList中指定的键相关的值.
Keys:获取SortedList中的键.

Values:获取SortedList中的值.

2.方法:

public virtual void Add( object key, object value );向 SortedList 添加一个带有指定的键和值的元素.
public virtual void Clear;从 SortedList 中移除所有的元素.
public virtual bool ContainsKey
( object key );判断 SortedList 是否包含指定的键.
public virtual bool ContainsValue( object value );判断 SortedList 是否包含指定的值.
public virtual object GetByIndex( int index );获取 SortedList 的指定索引处的值.
public virtual object GetKey( int index );获取 SortedList 的指定索引处的键。
public virtual IList GetKeyList();获取 SortedList 中的键。
public virtual IList GetValueList();获取 SortedList 中的值.
public virtual int IndexOfKey( object key );返回 SortedList 中的指定键的索引,索引从零开始.
public virtual int IndexOfValue( object value ); 返回 SortedList 中的指定值第一次出现的索引,索引从零开始.
public virtual void Remove( object key ); 从SortedList 中移除带有指定的键的元素.
public virtual void RemoveAt( int index ); 移除 SortedList 的指定索引处的元素.
public virtual void TrimToSize(); 设置容量为 SortedList 中元素的实际个数.

四:堆栈(Stack):

        堆栈(Stack)代表了一个后进先出的对象集合.当您需要对各项进行后进先出的访问时,则使用堆栈.当您在列表中添加一项,称为推入元素,当您从列表中移除一项时,称为弹出元素.

1.属性:

Count:获取Stack中包含的元素个数.

2.方法:

public virtual void Clear(); 从Stack中移除所有的元素.

public virtual bool Contains( object obj ); 判断某个元素是否在 Stack 中.
public virtual object Peek();返回在 Stack 的顶部的对象,但不移除它.
public virtual object Pop();移除并返回在 Stack 的顶部的对象.
public virtual void Push( object obj );向Stack的顶部添加一个对象.

public virtual object[] ToArray();复制Stack到一个新的数组中.

五:队列(Queue);

        队列Queue代表了一个先进先出的对象集合.当您需要对各项进行先进先出的访问时,则使用队列.当您在列表中添加一项,称为入队,当您从列表中移除一项时,称为出队.

1.属性:

Count:获取Queue中包含的元素个数.

2.方法:

public virtual void Clear(); 从Queue中移除所有的元素.
public virtual bool Contains( object obj ); 判断某个元素是否在 Queue 中.
public virtual object Dequeue();移除并返回在 Queue 的开头的对象.
public virtual void Enqueue( object obj ); 向Queue的末尾添加一个对象.
public virtual object[]
ToArray();复制Queue到一个新的数组中.

public virtual void TrimToSize();设置容量为Queue中元素的实际个数.

六.点阵列:(Bitarray)

        BitArray类管理一个紧凑型的位值数组,它使用布尔值来表示,其中 true 表示位是开启的(1),false 表示位是关闭的(0),当您需要存储位,但是事先不知道位数时,则使用点阵列.您可以使用整型索引从点阵列集合中访问各项,索引从零开始.

1.属性:

Count:获取BitArray中包含的元素个数.
IsReadOnly获取一个值,表示BitArray是否只读.
Item:获取或设置BitArray中指定位置的位的值.
Length:获取或设置BitArray中的元素个数.

2.方法:

public BitArray And( BitArray value ); 对当前的 BitArray 中的元素和指定的 BitArray 中的相对应的元素执行按位与操作.
public bool
Get( int index ); 获取 BitArray 中指定位置的位的值.
public BitArray
Not();把当前的 BitArray 中的位值反转,以便设置为 true 的元素变为 false,设置为 false 的元素变为 true.
public BitArray
Or( BitArray value );对当前的 BitArray 中的元素和指定的 BitArray 中的相对应的元素执行按位或操作.
public void
Set( int index, bool value ); 把 BitArray 中指定位置的位设置为指定的值.
public void
SetAll( bool value ); 把 BitArray 中的所有位设置为指定的值.

public BitArray Xor( BitArray value ); 对当前的 BitArray 中的元素和指定的 BitArray 中的相对应的元素执行按位异或操作.



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章