C# ArrayList:动态数组
在 C# 中,动态数组(ArrayList)代表了可被单独索引的对象的有序集合。动态数组基本上可以代替数组,唯一与数组不同的是,动态数组可以使用索引在指定的位置添加和移除指定的项目,动态数组会自动重新调整自身的大小。另外,动态数组允许在列表中进行动态内存分配、增加、搜索、排序等操作。
关于 ArrayList 类中的完整属性和方法介绍,可以查阅 C# 官方文档。
【示例】下面通过示例演示 ArrayList 类中属性和方法的使用:
ArrayList 类中的属性
在 C# 中想要创建动态数组需要使用 ArrayList 类,下表中列出了 ArrayList 类中的常用属性:属性 | 描述 |
---|---|
Capacity | 获取或设置动态数组中可以包含的元素个数 |
Count | 获取动态数组中实际包含的元素个数 |
IsFixedSize | 判断动态数组是否具有固定大小 |
IsReadOnly | 判断动态数组是否只读 |
IsSynchronized | 判断访问动态数组是否同步(线程安全) |
Item[Int32] | 获取或设置指定索引处的元素 |
SyncRoot | 获取一个对象用于同步访问动态数组 |
ArrayList 类中的方法
下表中列出了 ArrayList 类中的常用方法:方法名 | 描述 |
---|---|
public virtual int Add(object value) | 将对象添加到动态数组的末尾 |
public virtual void AddRange(ICollection c) | 将 ICollection 的元素添加到动态数组的末尾 |
public virtual void Clear() | 从动态数组中移除所有的元素 |
public virtual bool Contains(object item) | 判断某个元素是否在动态数组中 |
public virtual ArrayList GetRange(int index, int count) | 返回一个动态数组,表示源动态数组中元素的子集 |
public virtual int IndexOf(object) | 搜索整个动态数组,并返回对象在动态数组中第一次出现的索引,索引从零开始 |
public virtual void Insert(int index, object value) | 在动态数组的指定索引处插入一个元素 |
public virtual void InsertRange(int index, ICollection c) | 在动态数组的指定索引处插入某个集合的元素 |
public virtual void Remove(object obj) | 从动态数组中移除指定的对象 |
public virtual void RemoveAt(int index) | 移除动态数组中指定索引处的元素 |
public virtual void RemoveRange(int index, int count) | 从动态数组中移除某个范围的元素 |
public virtual void Reverse() | 逆转动态数组中元素的顺序 |
public virtual void SetRange(int index, ICollection c) | 复制某个集合的元素到动态数组中某个范围的元素上 |
public virtual void Sort() | 对动态数组中的元素进行排序 |
public virtual void TrimToSize() | 将容量设置为动态数组中元素的实际个数 |
关于 ArrayList 类中的完整属性和方法介绍,可以查阅 C# 官方文档。
【示例】下面通过示例演示 ArrayList 类中属性和方法的使用:
using System; using System.Collections; namespace c.biancheng.net { class Demo { static void Main(string[] args){ ArrayList arr_list = new ArrayList(); Console.WriteLine("以 Num1,Num2,Num3,...,Numn 的形式输入一个字符串:"); string str = Console.ReadLine(); string[] strArray = str.Split(','); foreach(string s in strArray){ arr_list.Add(s); } Console.WriteLine("Capacity: {0} ", arr_list.Capacity); Console.WriteLine("Count: {0}", arr_list.Count); Console.Write("Content: "); foreach (string i in arr_list) { Console.Write(i + " "); } Console.WriteLine(); Console.Write("Sorted Content: "); arr_list.Sort(); foreach (string i in arr_list) { Console.Write(i + " "); } Console.WriteLine(); Console.ReadKey(); } } }运行结果如下:
以 Num1,Num2,Num3,...,Numn 的形式输入一个字符串:
213,443,11,456,23,113,56,89,23
Capacity: 16
Count: 9
Content: 213 443 11 456 23 113 56 89 23
Sorted Content: 11 113 213 23 23 443 456 56 89