AI智能
改变未来

C#中ArrayList和Hashtable

本文章主要介绍两种集合:(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 中移除带有指定的键的元素。
赞(0) 打赏
未经允许不得转载:爱站程序员基地 » C#中ArrayList和Hashtable