C# ArrayList
零点工程师 人气:0一:ArrayList 类简单说明
动态数组ArrayList类在System.Collecions的命名空间下,所以使用时要加入System.Collecions命名空间,而且ArrayList提供添加,插入或移除某一范围元素的方法。ArrayList代表了可被单独索引的对象的有序集合。它基本上可以替代一个数组。但是,与数组不同的是,您可以使用索引在指定的位置添加和移除项目,动态数组会自动重新调整它的大小。它也允许在列表中进行动态内存分配、增加、搜索、排序 各项。
二:ArrayList 类的构造函数
构造函数 | 构造函数说明 |
---|---|
ArrayList() | 初始化 ArrayList 类的新实例,该实例为空并且具有默认初始容量。 |
ArrayList(ICollection) | 初始化 ArrayList 类的新实例,该类包含从指定集合复制的元素,并具有与复制的元素数相同的初始容量。 |
ArrayList(Int32) | 初始化 ArrayList 类的新实例,该实例为空并且具有指定的初始容量。 |
三:ArrayList 类的属性
属性 | 属性说明 |
---|---|
Capacity | 获取或设置 ArrayList 可包含的元素数。 |
Count | 获取 ArrayList 中实际包含的元素数。 |
IsFixedSize | 获取一个值,该值指示 ArrayList 是否具有固定大小。 |
IsReadOnly | 获取一个值,该值指示 ArrayList 是否为只读。 |
IsSynchronized | 获取一个值,该值指示是否同步对 ArrayList 的访问(线程安全) |
Item[Int32] | 获取或设置指定索引处的元素。 |
SyncRoot | 获取可用于同步对 ArrayList 的访问的对象。 |
1:使用举例说明
// 创建一个空的ArrayList,并添加一些元素. ArrayList stringList = new ArrayList(); stringList.Add("a"); stringList.Add("abc"); stringList.Add("abcdef"); stringList.Add("abcdefg"); Console.WriteLine("Element {0} is \"{1}\"", 2, stringList[2]); try { Console.WriteLine("Element {0} is \"{1}\"", 4, stringList[4]); } catch (ArgumentOutOfRangeException aoore) { Console.WriteLine("stringList({0}) is out of range.", 4); }
运行结果:
Element 2 is "abcdef"
stringList(4) is out of range.
四:ArrayList 类的常用方法
方法 | 方法说明 |
---|---|
Add(Object) | 将对象添加到 ArrayList 的结尾处。 |
AddRange(ICollection) | 将 ICollection 的元素添加到 ArrayList 的末尾。 |
Clear() | 从 ArrayList 中移除所有元素。 |
Clone() | 创建 ArrayList 的浅表副本。 |
Contains(Object) | 确定某元素是否在 ArrayList 中。 |
CopyTo(Array) | 从目标数组的开头开始,将整个 ArrayList 复制到兼容的一维 Array。 |
Equals(Object) | 确定指定对象是否等于当前对象。 |
GetRange(Int32, Int32) | 返回一个 ArrayList,它表示源 ArrayList 中的元素子集。 |
IndexOf(Object) | 搜索指定的 Object,并返回整个 ArrayList 中第一个匹配项的从零开始的索引。 |
LastIndexOf(Object) | 在整个 ArrayList 中搜索指定的 Object,并返回最后一个匹配项的从零开始的索引。 |
Insert(Int32, Object) | 将元素插入 ArrayList 的指定索引处。 |
Remove(Object) | 从 ArrayList 中移除特定对象的第一个匹配项。 |
RemoveAt(Int32) | 移除 ArrayList 的指定索引处的元素。 |
Reverse() | 将整个 ArrayList 中元素的顺序反转。 |
Sort() | 对整个 ArrayList 中的元素进行排序。 |
ToArray() | 将 ArrayList 的元素复制到新 Object 数组中。 |
ToString() | 返回表示当前对象的字符串。 |
1: AddRange(ICollection)方法使用举例
// 创建并初始化新的ArrayList ArrayList myAL = new ArrayList(); myAL.Add("ab"); myAL.Add("cd"); myAL.Add("efg"); // 创建并初始化新队列. Queue myQueue = new Queue(); myQueue.Enqueue("and"); myQueue.Enqueue("new arraylist"); // 将队列元素复制到ArrayList的末尾. myAL.AddRange(myQueue); foreach (Object obj in myAL) { Console.Write("{0} ",obj); }
运行结果:
ab cd efg and new arraylist
2: ArrayList.Clone() 方法使用举例
// 创建并初始化新的ArrayList ArrayList myAL = new ArrayList(); myAL.Add("ab"); myAL.Add("cd"); myAL.Add("efg"); // 克隆动态数组到新的动态数组里. ArrayList newArray = (ArrayList)myAL.Clone(); foreach (Object obj in newArray) { Console.Write("{0} ",obj); }
运行结果:
ab cd efg
3:ArrayList.Remove(Object) 使用举例
ArrayList myAL = new ArrayList(); myAL.Add("ab"); myAL.Add("cd"); myAL.Add("efg"); myAL.Add(true); myAL.Remove(true);//移除单个元素 foreach (Object obj in myAL) { Console.Write("{0} ", obj); }
运行结果:
ab cd efg
4:ArrayList.RemoveAt(Int32) 使用举例
ArrayList myAL = new ArrayList(); myAL.Add("ab"); myAL.Add("cd"); myAL.Add("efg"); myAL.RemoveAt(1);//根据下标号删除元素 foreach (Object obj in myAL) { Console.Write("{0} ", obj); }
运行结果:
ab efg
5:ArrayList.RemoveAt(Int32) 使用举例
ArrayList myAL = new ArrayList(); myAL.Add("ab"); myAL.Add("cd"); myAL.Add("efg"); myAL.Add("lm"); myAL.Add("nopq"); myAL.RemoveRange(1,3);//根据下标范围删除元素 foreach (Object obj in myAL) { Console.Write("{0} ", obj); }
运行结果:
ab nopq
6:ArrayList.Reverse() 使用举例
ArrayList myAL = new ArrayList(); myAL.Add("ab"); myAL.Add("cd"); myAL.Add("efg"); myAL.Reverse();//反转所有元素 foreach (Object obj in myAL) { Console.Write("{0} ", obj); }
运行结果:
efg cd ab
7:ArrayList.Insert(Int32, Object)使用举例
ArrayList myAL = new ArrayList(); myAL.Add("ab"); myAL.Add("cd"); myAL.Add("efg"); myAL.Insert(2,"new"); foreach (Object obj in myAL) { Console.Write("{0} ", obj); }
运行结果:
ab cd new efg
8:ArrayList.InsertRange(Int32, ICollection) 使用举例
ArrayList myAL = new ArrayList(); int[] shuzu= {1,2,3,4,5}; myAL.Add("ab"); myAL.Add("cd"); myAL.Add("efg"); myAL.InsertRange(2, shuzu);//指定位置,插入集合 foreach (Object obj in myAL) { Console.Write("{0} ", obj); }
运行结果:
ab cd 1 2 3 4 5 efg
9:ArrayList.Contains(Object) 使用举例
ArrayList myAL = new ArrayList(); myAL.Add("ab"); myAL.Add("cd"); myAL.Add("efg"); myAL.Add("nopq"); bool b = myAL.Contains("nopq");//是否包含指定元素 Console.WriteLine("是否包含nopq = {0}", b);
运行结果:
是否包含nopq = true
加载全部内容