(二十) C#基础学习之集合: ArrayList & HashTable & foreach循环

一、ArrayList 

  * 必须先引用 using System.Collections;

  * new创建一个新的集合:ArrayList list = new ArrayList();

  * 相比于数组的长度不可变以及类型单一等缺点,ArrayList的长度可以任意改变,类型也随意

  * ArrayList 包含很多方法,必须掌握:

 (二十) C#基础学习之集合: ArrayList & HashTable & foreach循环

 

 * ArrayList的长度

  - list.count表示这个集合中实际包含元素的个数

  - list.capacity表示这个集合能够包含元素的个数(容量)

  - 每当集合中实际元素个数count超过容量capacity,集合就会向内存申请多开辟一倍的空间,以保证集合的长度一够用。

 

* ArrayList中的元素都是object类型 (object是所有类的父类,即超类)

(二十) C#基础学习之集合: ArrayList & HashTable & foreach循环 

 

二、foreach循环

格式:

foreach (var item in collection)
{

}

* var: 用于推断item的类型

* item: 代表循环集合的每一项

* Collection: 表示要循环的集合

* 当循环的数据量比较大时,For循环比Foreach循环效率高

 

三、Hashtable 键值对集合

  * “C#的Hashtable” 和 “Python的dictionary字典”类似,元素都是以 (key, value) 的形式存在

  * 创建一个新的Hashtable对象: Hashtable ht = new Hashtable(); 

  * Hashtable中的key和value都可通过彼此取到,例如 ht[key]返回的是对应的value值;同样的,ht[value] 对应的是key值。

  * 赋值方式也可以: ht[2] = "新添加的值" 

  * ht.Keys 返回所有key的集合

  * ht.Values 返回所有Value的集合

  * 键key必须是唯一的,而值value是可以重复的。

  * ht.remove(key) 根据key移除整个元素组

  * ht.clear(); 清除所有元素

  * ht.Contains()/ ht.ContainsKey()/ht.ContainsValue() 判断是否包含...

  * 因Hashtable中的key值不一定都是int类型,遍历循环不能使用for循环,而应该使用foreach循环

例子:

(二十) C#基础学习之集合: ArrayList & HashTable & foreach循环

 

(二十) C#基础学习之集合: ArrayList & HashTable & foreach循环

上一篇:WPF-属性概述


下一篇:WPF Visibility的用法