C#中ArrayList 类的使用详解

 更新时间:2022年09月20日 15:52:43   作者:零点工程师  
这篇文章主要介绍了C#中ArrayList 类的使用详解,动态数组ArrayList类在System.Collecions的命名空间下,所以使用时要加入System.Collecions命名空间,而且ArrayList提供添加,插入或移除某一范围元素的方法

一: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

到此这篇关于C#中ArrayList 类的使用详解的文章就介绍到这了,更多相关C# ArrayList 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解C#编程中.NET的弱事件模式

    详解C#编程中.NET的弱事件模式

    这篇文章主要介绍了C#编程中.NET的弱事件模式,深入讨论了C#中相关的垃圾回收机制,需要的朋友可以参考下
    2015-07-07
  • C#使用Exchange实现发送邮件

    C#使用Exchange实现发送邮件

    最近项目中需要用到exchange的操作,所以本文就参照msdn弄了一个简单的C#操作类,实现了发送邮件和拉取收件箱的功能,感兴趣的小伙伴可以了解下
    2023-10-10
  • C#属性get和set使用示例详解

    C#属性get和set使用示例详解

    属性是C#中的一种特殊成员,它允许外部以受控方式访问类的状态,属性通过get和set方法实现对类私有字段的读取和修改,本文给大家介绍C#属性get和set使用,感兴趣的朋友一起看看吧
    2024-09-09
  • C#实现利用Linq操作Xml文件

    C#实现利用Linq操作Xml文件

    这篇文章主要为大家详细介绍了C#如何利用Linq实现操作Xml文件,文中的示例代码讲解详细,对我们学习C#有一定的帮助,感兴趣的小伙伴可以跟随小编一起了解一下
    2022-12-12
  • C#与PHP的md5计算结果不同的解决方法

    C#与PHP的md5计算结果不同的解决方法

    今天在用C#接入我的登录api发现了一个问题,登陆的时候无论如何都会出现用户名和密码错误的问题,后来通过查找排除找的了问题的原因是因为C#与PHP的md5计算结果不同导致的,下面就来看看如何解决这个问题吧。
    2016-12-12
  • C#使用WMI实现监听进程的启动和关闭

    C#使用WMI实现监听进程的启动和关闭

    Windows Management Instrumentation(WMI)是用于管理基于 Windows 操作系统的数据和操作的基础结构,本文将使用WMI实现监听进程的启动和关闭,感兴趣的可以了解下
    2024-01-01
  • C#中数组、ArrayList和List三者的区别详解及实例

    C#中数组、ArrayList和List三者的区别详解及实例

    这篇文章主要介绍了C#中数组、ArrayList和List三者的区别详解及实例的相关资料,需要的朋友可以参考下
    2016-12-12
  • C#中的自动类型转换和强制类型转换

    C#中的自动类型转换和强制类型转换

    这篇文章主要介绍了C#中的自动类型转换和强制类型转换,非常不错,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2019-08-08
  • c#生成高清缩略图的二个示例分享

    c#生成高清缩略图的二个示例分享

    这篇文章主要介绍了c#生成高清缩略图的二个示例,需要的朋友可以参考下
    2014-04-04
  • C#异常捕获机制图文详解

    C#异常捕获机制图文详解

    在本文中我们给大家分享了关于C#异常捕获机制的相关知识点内容,有兴趣的朋友们学习下。
    2019-02-02

最新评论