C#中ArrayList 类的使用详解

目录
  • 一:ArrayList 类简单说明
  • 二:ArrayList 类的构造函数
  • 三:ArrayList 类的属性
    • 1:使用举例说明
  • 四:ArrayList 类的常用方法
    • 1: AddRange(ICollection)方法使用举例
    • 2: ArrayList.Clone() 方法使用举例
    • 3:ArrayList.Remove(Object) 使用举例
    • 4:ArrayList.RemoveAt(Int32) 使用举例
    • 5:ArrayList.RemoveAt(Int32) 使用举例
    • 6:ArrayList.Reverse() 使用举例
    • 7:ArrayList.Insert(Int32, Object)使用举例
    • 8:ArrayList.InsertRange(Int32, ICollection) 使用举例
    • 9:ArrayList.Contains(Object) 使用举例

一: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 内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 详解c#中Array,ArrayList与List<T>的区别、共性与相互转换

    目录 Array,ArrayList and List<T> Array 一维数组 定义 初始化赋值 多维数组 定义 初始化赋值 元素赋值和获取元素 交错数组 定义 初始化赋值 获取元素和单个赋值 方法和属性 改 查 获取长度 Array.ConvertAll() 数据类型转换 切片 获取单个元素和赋值 Array.ForEach 循环 ArrayList 定义 初始化赋值 循环 方法和属性 List<T> 定义 初始化 循环 方法和属性 属性 长度 属性 取值 增 查 删 改 切

  • C#入门教程之集合ArrayList用法详解

    本文实例讲述了C#入门教程之集合ArrayList用法.分享给大家供大家参考,具体如下: .NET Framework提供了用于数据存储和检索的专用类,这些类统称集合.这些类提供对堆栈.队列.列表和哈希表的支持.大多数集合类实现系统的接口.下面我们主要来讲一下ArrayList. ArrayList是命名空间Systrm.Collections下的一部分,它是使用大小可按需动态增加的数组实现IList接口. ArrayList的容量是ArrayList可以保存的元素数.ArrayList的默认初

  • C# ArrayList、HashSet、HashTable、List、Dictionary的区别详解

    在C#中,数组由于是固定长度的,所以常常不能满足我们开发的需求. 由于这种限制不方便,所以出现了ArrayList. ArrayList.List<T> ArrayList是可变长数组,你可以将任意多的数据Add到ArrayList里面.其内部维护的数组,当长度不足时,会自动扩容为原来的两倍. 但是ArrayList也有一个缺点,就是存入ArrayList里面的数据都是Object类型的,所以如果将值类型存入和取出的时候会发生装箱.拆箱操作(就是值类型与引用类型之间的转换),这个会影响程序性能

  • C#中数组、ArrayList、List、Dictionary的用法与区别浅析(存取数据)

    前言 在工作中经常遇到C#数组.ArrayList.List.Dictionary存取数据,但是该选择哪种类型进行存储数据,对于初学者的我一直不知道该怎么取舍.于是抽空好好看了下他们的用法和比较,在这里总结下来,后面有需要改进的再更新. 初始化 数组: int[] buff = new int[6]; ArrayList: ArrayList buff = new ArrayList(); List: List<int> buff = new List<int>(); Dictio

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

    在C#中数组,ArrayList,List都能够存储一组对象,那么这三者到底有什么样的区别呢. 数组 数组在C#中最早出现的.在内存中是连续存储的,所以它的索引速度非常快,而且赋值与修改元素也很简单. //数组 string[] s=new string[2]; //赋值 s[0]="a"; s[1]="b"; //修改 s[1]="a1"; 但是数组存在一些不足的地方.在数组的两个数据间插入数据是很麻烦的,而且在声明数组的时候必须指定数组的长度

  • C# 中 Array和 ArrayList详解及区别

    C# 中 Array和 ArrayList详解及区别 一.Array 的用法 type[] typename=new type[size]; 或者 type[] typename=new type[]{ }; Array类型的变量在声明的同时必须进行实例化(如果初始化至少得初始化数组的大小) 平常我们int[],string[]...事实上就是声明一个array数组了 如: string [] srt=new string[]{"a","b"}; int[] a=n

  • C#中数组Array,ArrayList,泛型List详细对比

    在C#中数组Array,ArrayList,泛型List都能够存储一组对象,但是在开发中根本不知道用哪个性能最高,下面我们慢慢分析分析. 一.数组Array 数组是一个存储相同类型元素的固定大小的顺序集合.数组是用来存储数据的集合,通常认为数组是一个同一类型变量的集合. Array 类是 C# 中所有数组的基类,它是在 System 命名空间中定义. 数组在内存中是连续存储的,所以它的索引速度非常快,而且赋值与修改元素也非常简单. Array数组具体用法: using System; names

  • 轻松学习C#的ArrayList类

    动态数组ArrayList类在System.Collecions的命名空间下,所以使用时要加入System.Collecions命名空间,而且ArrayList提供添加,插入或移除某一范围元素的方法.在ArrayList中,用户只能一次获取或设置一个元素的值. 一.ArrayList元素的添加          ArrayList提供了两种方法用于向ArrayList添加元素,即Add和AddRange.          (1),Add方法将单个元素添加到列表的尾部,其格式为:ArrayLis

  • C#中ArrayList 类的使用详解

    目录 一:ArrayList 类简单说明 二:ArrayList 类的构造函数 三:ArrayList 类的属性 1:使用举例说明 四:ArrayList 类的常用方法 1: AddRange(ICollection)方法使用举例 2: ArrayList.Clone() 方法使用举例 3:ArrayList.Remove(Object) 使用举例 4:ArrayList.RemoveAt(Int32) 使用举例 5:ArrayList.RemoveAt(Int32) 使用举例 6:ArrayL

  • Java中Math类常用方法代码详解

    近期用到四舍五入想到以前整理了一点,就顺便重新整理好经常见到的一些四舍五入,后续遇到常用也会直接在这篇文章更新... public class Demo{ public static void main(String args[]){ /** *Math.sqrt()//计算平方根 *Math.cbrt()//计算立方根 *Math.pow(a, b)//计算a的b次方 *Math.max( , );//计算最大值 *Math.min( , );//计算最小值 */ System.out.pri

  • C#中backgroundWorker类的用法详解

    1.在 WinForms 中,有时要执行耗时的操作,在该操作未完成之前操作用户界面,会导致用户界面停止响应.解决的方法就是新开一个线程,把耗时的操作放到线程中执行,这样就可以在用户界面上进行其它操作.新建线程可以用 Thread 类,可以实现多线程同时操作.简单的方法可以通过 BackgroundWorker 类实现. BackgroundWorker 可以用来更新UI界面,但是通常用来Progressbar(进度条)控件 例如更新UI private void Form1_Load(objec

  • Java中BigDecimal类的使用详解

    不论是float 还是double都是浮点数,而计算机是二进制的,浮点数会失去一定的精确度.Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算.BigDecimal所创建的是对象,我们不能使用传统的+.-.*./等算术运算符直接对其对象进行数学运算,而必须调用其相对应的方法.方法中的参数也必须是BigDecimal的对象.构造器是类的特殊方法,专门用来创建对象,特别是带有参数的对象. 一.BigDecimal转换取Double数据 假设我

  • C/C++中派生类访问属性详解及其作用介绍

    目录 保护继承 派生类成员的访问属性 总结 保护继承 由 protected 声明的成员称为 "受保护的成员", 或简称 "保护成员". 从用户的角度来看, 保护成员等价于私有成员. 保护成员可以被派生类的成员函数引用. 派生类成员的访问属性 4 种访问属性: 公用的: 类内和类外都可以访问 受保护的: 类内可以访问, 类外不能访问, 下一层的派生类可以访问 私有的: 类内可以访问, 类外不能访问 不可访问的: 类内和类外都不能访问 继承方式 基类中的成员 访问属性

  • Java中String类常用方法使用详解

    目录 一.length() 二.equals 三.charAt() 四.indexOf() 五.trim() 六.compareTo() 七.toLowerCase() 八.toUpperCase() 九.replace() 十.substring(int beginIndex) 十一.substring(int beginIndex, int endIndex) 总结 一.length() 返回此字符串的长度 public static void main4(String[] args) {

  • Java中String类常用方法总结详解

    目录 一. String对象的比较 1. ==比较是否引用同一个对象 2. boolean equals(Object anObject) 3. int compareTo(String s) 4. int compareToIgnoreCase(String str) 二. 字符串查找 三. 转化 1. 数值和字符串转化 2. 大小写转化 3. 字符串和数组的转换 4. 格式化 四. 字符串替换 五. 字符串拆分 六. 字符串截取 七. 其他操作方法 1. String trim() 2. b

  • JavaScript中定义类的方式详解

    本文实例讲述了JavaScript中定义类的方式.分享给大家供大家参考,具体如下: Javascript本身并不支持面向对象,它没有访问控制符,它没有定义类的关键字class,它没有支持继承的extend或冒号,它也没有用来支持虚函数的virtual,不过,Javascript是一门灵活的语言,下面我们就看看没有关键字class的Javascript如何实现类定义,并创建对象. 一.定义类并创建类的实例对象 在Javascript中,我们用function来定义类,如下: function Sh

  • java中Calendar类用法实例详解

    本文实例讲述了java中Calendar类用法.分享给大家供大家参考,具体如下: java中的Calendar在开发中经常被忽略,这篇博客总结一下这个类,对后面项目中使用时期的时候有帮助. Calendar常量(field)的作用 Calendar cal = Calendar.getInstance(); cal.get(Calendar.DATE);//-----------------------当天 1-31 cal.get(Calendar.DAY_OF_MONTH);//------

  • Java中ArrayList的removeAll方法详解

    本文介绍的是关于Java中ArrayList的removeAll方法的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: 在开发过程中,遇到一个情况,就是从所有骑手Id中过滤没有标签的骑手Id(直接查询没有标签的骑手不容易实现), List<Integer> allRiderIdList = new ArrayList(); // 所有的骑手,大致有23W数据 List<Integer> hasAnyTagRiderId = new ArrayList(); // 有标签

随机推荐