首页 > Python基础教程 >
-
C#教程之使用集合组织相关数据
ArrayList非常类似于数组,也有人称它为数组列表,ArrayList可以动态维护
提示:
和数组相似,ArrayList中存储的数据称为元素,ArrayList可以保存的元素数就是ArrayList容量,其默认初始容量为0,可以通过索引访问ArrayList中的元素,索引从0开始
ArrayList属于System.Collections命名空间,是集合的一种
using System.Collection
ArrayList arr=new ArrayList();
ArrayList常用方法和属性
属性名称 说明
Count 获取ArrayList中实际包含的元素数
返回值类型 方法名称 说明
int Add(Object value) 将对象添加到ArrayList的结尾处
void RemoveAt(int index) 移除ArrayList指定索引处的元素
void Remove(Object value) 从ArrayList中移除特定的对象
void Clear() 从ArrayList中移除所有的元素
给ArrayList添加数据
1.ArrayList通过Add方法添加元素
返回值 :值是一个int类型,用于返回的元素的索引
参数:如果向ArrayList中添加的元素是值类型,这些元素就都会装箱处理转化为Object引用类型,然后保存,因此ArrayList中所有的元素都是对象的引用
存取ArrayList中的单个元素
ArrayList获取一个元素的方法和数组一样,也是通过索引(index)来访问,ArrayList中第一个元素的索引是0
遍历ArrayList中的元素
int[] array=new int[]{1,2,3,4,5};
for(int i=0;i<array.length;i++){
Console.WriteLine(array[i]);
}
删除ArrayList中的元素
ArrayList engineers=new ArrayList();
engineers.RemoveAt(0);
enginneers.Remove(ema);
MessageBox.Show(string.Format("部门共包括{0}个工程师",engineers.Count.Tostring()));
SE leave=(SE)engineers[0];
MessageBos.Show(leave.SayHi());
RemoveAt()和Remove()方法只能删除一个元素
Hashtable
Hashtable的常用方法和属性
属性名称 说明
Count 获取包含在Hashtable中键/值对的数目
Keys 获取包含在Hashtable中键的集合
Values 获取包含Hashtable中值的集合
返回值类型 方法名称 说明
void Add(Object key,Object value) 将带有指定的键和值的元素添加到Hashtable中
void Remove(Object key) 从Hashtable中移除带有特定键的元素
void Clear() 从Hashtable中移除所有的元素
Hashtable通过Add()方法添加元素
Hashtable的Add()方法有二个参数,一个表示键,一个不是键所对应的值
遍历Hashtable中的元素
foreach(Oject obj in engineers.Keys){
Console.WirteLine((string)obj);
}
foreach(Object obj in engineers.Values){
SE se=(SE)obj;
Console.WriteLine(se.Name);
}
泛型和泛型集合
泛型
泛型引入了一个概念:类型参数。通过使用类型参数(T)减少了运行时强制转换或装箱操作的风险,通过泛型可以最大限度的重用代码,保护类型的安全及提高性能,他的最常见应用就是创建集合类,可以约束集合类中的元素类型。比较典型的泛型集合是List<T>和Dictionary<>;
泛型集合List<T>
语法
List<T>对象名=new List<T>();
List<T>与ArrayList的区别
异同点 List<T> ArrayList
不同点 对所保存元素做类型约束 可以增加任何类型
添加/读取值类型元素无须拆箱,装箱 添加/读取值类型元素需要拆箱,装箱
相同点 通过索引访问集合中的元素
添加元素方法相同
删除元素方法相同
泛型集合Dictionary<K,V>
语法
Dictionary<K,V>对象名=new Dictionary<K,V>();
例如:
Dictionary<string,SE>engineers=new Dictionary<string,SE>();
Dictionary和Hashtable的对比
异同点 Dictionary<K,V> Hashtable
不同点 对所保存元素做类型约束 可以增加任何类型
添加/读取值类型元素无须拆箱,装箱 添加/读取值类型元素需要拆箱,装箱
相同点 通过Key获取Value
添加元素方法相同
删除元素方法相同
遍历方法相同
Dictionary还可以采用下面的方式
foreach(KeyValuePair<string,SE> en in engineers){
Console.WriteLine(en.Key);
Console.WriteLine(en.Value.Name);
}
泛型类
语法
public class 类名<T>{
//。。。。。。。。
}