本文章主要介绍两种集合:(1)ArrayList;(2)Hashtable;
一、ArrayList
ArrayList类似于数组,其大小可根据需要动态改变,也可称之为动态数组。
有如下学生类:
class Student{public Student(string code,string name,string address){this.Code = code;this.Name = name;this.Address = address;}public string Code { get; set; } //学号public string Name { get; set; } //姓名public string Address { get; set; } //宿舍地址}
在main方法中实例化了6个学生对象:
Student s1 = new Student("001","郑楷", "802");Student s2 = new Student("002","周金辉", "803");Student s3 = new Student("003","钱章", "804");Student s4 = new Student("004","吕源勋", "805");Student s5 = new Student("005","刘权", "806");Student s6 = new Student("006","徐帅", "807");
集合的定义:
ArrayList list = new ArrayList();
集合中添加元素:
list.Add(s1);list.Add(s2);list.Add(s3);list.Add(s4);list.Add(s5);list.Add(s6);
获取集合元素个数:
Console.Write(list.Count);
循环遍历集合中的元素:
foreach (Student item in list){Console.Write(item.Name + " ");}
或
for (int i = 0; i < list.Count; i++){Student stu = (Student)list[i];Console.Write(stu.Name + " ");}
集合中删除元素:
list.Remove(s5); //根据对象删除list.Remove(4); //根据下标索引删除
集合的插入:
Student s7 = new Student("007","张劲飞", "801");list.Insert(2, s7); //向索引编号为2的元素前面插入
集合元素的清除:
list.Clear();
集合的更多属性和方法,可查看如下表格:
下表列出了 ArrayList 类的一些常用的 属性:
属性 | 描述 |
---|---|
Capacity | 获取或设置 ArrayList 可以包含的元素个数。 |
Count | 获取 ArrayList 中实际包含的元素个数。 |
IsFixedSize | 获取一个值,表示 ArrayList 是否具有固定大小。 |
IsReadOnly | 获取一个值,表示 ArrayList 是否只读。 |
IsSynchronized | 获取一个值,表示访问 ArrayList 是否同步(线程安全)。 |
Item[Int32] | 获取或设置指定索引处的元素。 |
SyncRoot | 获取一个对象用于同步访问 ArrayList。 |
下表列出了 ArrayList 类的一些常用的 方法:
序号 | 方法名 & 描述 |
---|---|
1 | public virtual int Add( object value ); 在 ArrayList 的末尾添加一个对象。 |
2 | public virtual void AddRange( ICollection c ); 在 ArrayList 的末尾添加 ICollection 的元素。 |
3 | public virtual void Clear(); 从 ArrayList 中移除所有的元素。 |
4 | public virtual bool Contains( object item ); 判断某个元素是否在 ArrayList 中。 |
5 | public virtual ArrayList GetRange( int index, int count ); 返回一个 ArrayList,表示源 ArrayList 中元素的子集。 |
6 | public virtual int IndexOf(object); 返回某个值在 ArrayList 中第一次出现的索引,索引从零开始。 |
7 | public virtual void Insert( int index, object value ); 在 ArrayList 的指定索引处,插入一个元素。 |
8 | public virtual void InsertRange( int index, ICollection c ); 在 ArrayList 的指定索引处,插入某个集合的元素。 |
9 | public virtual void Remove( object obj ); 从 ArrayList 中移除第一次出现的指定对象。 |
10 | public virtual void RemoveAt( int index ); 移除 ArrayList 的指定索引处的元素。 |
11 | public virtual void RemoveRange( int index, int count ); 从 ArrayList 中移除某个范围的元素。 |
12 | public virtual void Reverse(); 逆转 ArrayList 中元素的顺序。 |
13 | public virtual void SetRange( int index, ICollection c ); 复制某个集合的元素到 ArrayList 中某个范围的元素上。 |
14 | public virtual void Sort(); 对 ArrayList 中的元素进行排序。 |
15 | public virtual void TrimToSize(); 设置容量为 ArrayList 中元素的实际个数。 |
二、Hashtable
用于处理key/value(键/值)对的集合容器。
key通常用于快速查找,value用于存储对应于key的值。
有如下学生类:
class Student{public Student(string code,string name,string address){this.Code = code;this.Name = name;this.Address = address;}public string Code { get; set; } //学号public string Name { get; set; } //姓名public string Address { get; set; } //宿舍地址}
在main方法中实例化了6个学生对象:
Student s1 = new Student("001","郑楷", "802");Student s2 = new Student("002","周金辉", "803");Student s3 = new Student("003","钱章", "804");Student s4 = new Student("004","吕源勋", "805");Student s5 = new Student("005","刘权", "806");Student s6 = new Student("006","徐帅", "807");
集合的定义:
Hashtable list = new Hashtable();
集合中添加元素:
list.Add(s1.Code,s1);list.Add(s2.Code, s2);list.Add(s3.Code, s3);list.Add(s4.Code, s4);list.Add(s5.Code, s5);list.Add(s6.Code, s6);
获取集合元素个数:
Console.Write(list.Count);
循环遍历集合中的元素:
//list.Values代表值集合,list.Keys代表键集合foreach (Student item in list.Values){Console.Write(item.Name + " ");}
集合中删除元素:
list.Remove("005"); //根据键删除元素
集合元素的清除:
list.Clear();
集合的更多属性和方法,可查看如下表格:
下表列出了 Hashtable 类的一些常用的 属性:
属性 | 描述 |
---|---|
Count | 获取 Hashtable 中包含的键值对个数。 |
IsFixedSize | 获取一个值,表示 Hashtable 是否具有固定大小。 |
IsReadOnly | 获取一个值,表示 Hashtable 是否只读。 |
Item | 获取或设置与指定的键相关的值。 |
Keys | 获取一个 ICollection,包含 Hashtable 中的键。 |
Values | 获取一个 ICollection,包含 Hashtable 中的值。 |
下表列出了 Hashtable 类的一些常用的 方法:
序号 | 方法名 & 描述 |
---|---|
1 | public virtual void Add( object key, object value ); 向 Hashtable 添加一个带有指定的键和值的元素。 |
2 | public virtual void Clear(); 从 Hashtable 中移除所有的元素。 |
3 | public virtual bool ContainsKey( object key ); 判断 Hashtable 是否包含指定的键。 |
4 | public virtual bool ContainsValue( object value ); 判断 Hashtable 是否包含指定的值。 |
5 | public virtual void Remove( object key ); 从 Hashtable 中移除带有指定的键的元素。 |