AI智能
改变未来

C# 基础 ArrayList

动态数组(ArrayList)代表了可被单独索引的对象的有序集合。它基本上可以替代一个数组。但是,与数组不同的是,您可以使用索引在指定的位置添加和移除项目,动态数组会自动重新调整它的大小。它也允许在列表中进行动态内存分配、增加、搜索、排序各项。

ArrayList 类的方法和属性
常用属性

属性 描述
Capacity 获取或设置 ArrayList 可以包含的元素个数。
Count 获取 ArrayList 中实际包含的元素个数。
IsFixedSize 获取一个值,表示 ArrayList 是否具有固定大小。
IsReadOnly 获取一个值,表示 ArrayList 是否只读。
IsSynchronized 获取一个值,表示访问 ArrayList 是否同步(线程安全)。
Item[Int32] 获取或设置指定索引处的元素。
SyncRoot 获取一个对象用于同步访问 ArrayList。

常用方法

方法 描述
public virtual int Add( object value ); 在 ArrayList 的末尾添加一个对象。
public virtual void AddRange( ICollection c ); 在 ArrayList 的末尾添加 ICollection 的元素。
public virtual void Clear(); 从 ArrayList 中移除所有的元素。
public virtual bool Contains( object item ); 判断某个元素是否在 ArrayList 中。
public virtual ArrayList GetRange( int index, int count ); 返回一个 ArrayList,表示源 ArrayList 中元素的子集。
public virtual int IndexOf(object); 返回某个值在 ArrayList 中第一次出现的索引,索引从零开始。
public virtual void Insert( int index, object value ); 在 ArrayList 的指定索引处,插入一个元素。
public virtual void InsertRange( int index, ICollection c ); 在 ArrayList 的指定索引处,插入某个集合的元素。
public virtual void Remove( object obj ); 从 ArrayList 中移除第一次出现的指定对象。
public virtual void RemoveAt( int index ); 移除 ArrayList 的指定索引处的元素。
public virtual void RemoveRange( int index, int count ); 从 ArrayList 中移除某个范围的元素。
public virtual void Reverse(); 逆转 ArrayList 中元素的顺序。
public virtual void SetRange( int index, ICollection c ); 复制某个集合的元素到 ArrayList 中某个范围的元素上。
public virtual void Sort(); 对 ArrayList 中的元素进行排序。
public virtual void TrimToSize(); 设置容量为 ArrayList 中元素的实际个数。

实例一

using System;using System.Collections;namespace CollectionApplication{class Program{static void Main(string[] args){ArrayList al = new ArrayList();Console.WriteLine(\"Adding some numbers:\");al.Add(45);al.Add(78);al.Add(33);al.Add(56);al.Add(12);al.Add(23);al.Add(9);Console.WriteLine(\"Capacity: {0} \", al.Capacity);Console.WriteLine(\"Count: {0}\", al.Count);Console.Write(\"Content: \");foreach (int i in al){Console.Write(i + \" \");}Console.WriteLine();Console.Write(\"Sorted Content: \");al.Sort();foreach (int i in al){Console.Write(i + \" \");}Console.WriteLine();Console.ReadKey();}}}

结果

Adding some numbers:Capacity: 8Count: 7Content: 45 78 33 56 12 23 9Content: 9 12 23 33 45 56 78

实例二

using System;using System.Collections;namespace CollectionApp{class MyComparer : IComparer{public int Compare(object x, object y){// 自定义比较规则// 如果x,y都是int,那么按正常流程比较// 如果其中一个不是int,那么认为不是int的值小// 如果都不是int,那么认为他们相等if (x is int){if (y is int){if ((int)x < (int)y) return -1;if ((int)x == (int)y) return 0;return 1;}return 1;}if (y is int) return -1;return 0;}}class Entry{static void Print(ArrayList l){Console.WriteLine(\"\\t大小能力:{0}   实际大小:{1}\", l.Capacity, l.Count);Console.Write(\"\\t内容:\");foreach (object obj in l)Console.Write(\"{0} \", obj);Console.Write(\"\\r\\n\");}static void Main(){ArrayList l = new ArrayList();Console.WriteLine(\"添加一些不都是Int的数据:\");l.Add(22);l.Add(77);l.Add(\"abc\");l.Add(33);Print(l);Console.WriteLine(\"排序:\");l.Sort(new MyComparer());Print(l);Console.ReadKey();}}}

结果

添加一些不都是Int的数据:大小能力:4   实际大小:4内容:22 77 abc 33排序:大小能力:4   实际大小:4内容:abc 22 33 77
赞(0) 打赏
未经允许不得转载:爱站程序员基地 » C# 基础 ArrayList