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 中的相對應的元素執行按位異或操作.



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