集合簡單的說就是數組的升級版。他可以動態的對集合的長度(也就是集合內最大元素的個數)進行定義和維護!
ArrayList非常類似于數組。也有人稱他為數組列表,它的容量可以根據需要進行動態擴充,而它的索引也會根據集合容量的擴展而重新分配和調整。也就是說ArrayList集合中的元素的下標是不確定的、可變的。
ArrayList類屬于System.Collections命名空間,這個命名空間包含接口和類,這些接口和類定義各種對象(如列表、隊列、位數組、哈希表和字典)的集合。
語法:
Using System.Collections;//導入命名空間//定義ArrayList對象ArrayList ArrayList集合名稱=new ArrayList(【長度】);
| 屬性名稱 | 說明 |
| Count | 獲取ArrayList中實際包含的元素數 |
| 返回值類型 | 方法名稱 | 說明 |
| int | add(Object Value) | 將對象添加到ArrayList的結尾處 |
| Void | RemoveAt(int index) | 移除ArrayList指定索引處的元素 |
| Void | Remove(Object Value) | 從ArrayList中移除特定的對象 |
| Void | Clear() | 從ArrayList中移除所有的元素 |
在ArrayList中我們可以通過索引訪問集合中的元素,但是當集合內的元素索引頻繁變化時要找出每個元素的位置(索引)就變得非常麻煩你了,
C#提供了一種叫HashTable的數據結構,通常稱他為哈希表也有人稱他為“字典”,給它起字典這個名字是因為它和字典非常類似,都是通過一個單詞查找出有關此單詞的更多信息,HashTable是通過鍵(Key)對值(Value)來組織數據的
| 屬性 | 說明 |
| count | 獲取包含在HashTable中鍵值對的數目 |
| Keys | 獲取包含HasTable中鍵的集合 |
| Values | 獲取包含HasTable中值得集合 |
| 返回值類型 | 方法名稱 | 說明 |
| void | Add(Object Key,Object Value) | 將帶有指定鍵和值得元素添加到HashTable中 |
| Void | Remove(Object Key) | 從HashTable中移除帶有特定鍵的元素 |
| Void | Clear() | 清除HashTable中的所有元素 |
通過ArrayList和HashTable存儲的數據都會轉換成Object類型,這就意味著它可以在一個集合中存儲不同的類型元素,在遍歷集合時就有可能引發強制類型轉換錯誤的問題。而泛型集合是類型安全的,在定義時就先定了集合中的元素類型,下面將詳細講解泛型和泛型集合。
泛型是C#2.0 中的一個新特性,泛型引入了一個概念:類型參數,通過使用類型參數(T)減少了運行時強制類型轉換或裝箱拆箱操作的風險,同過泛型可以最大限度的重用代碼,保護類型安全及提高性能,它的最常見應用是創建集合類,可以約束集合類中的元素類型。個比較典型的泛型集合是LIst<T>和Dictionary<K,V>,下面進行詳細講解、
在System.Collections.Generic命名空間中定義了去多泛型集合類這些類可以代替上面的ArrayList
定義一個List<T>集合的語法如下:
List <T> 集合名稱=new List<T>();
“<T>”中的T可以對集合中的元素類型進行約束,T表名集合管理的元素類型。
泛型集合Dictionary可以代替上面的HashTable
定義一個泛型集合Dictionary<K,V>的語法
Dictionary<K,V> 集合名稱=new Dictionary<K,V>();
在”<K,V>”中K表示集合中Key的類型,V表示Value的類型,他們的含義和List<K,V>是相同的
在集合中使用泛型只是泛型多種應用的一種,在類、方法等方面已有泛型的應用
定義一個泛型類的語法如下:
public class 類名<T>{ //....}
T指類型參數,代表具體的數據類型,可以是值類型也可以是引用類型
新聞熱點
疑難解答