C# 动态数组(ArrayList)

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

一、ArrayList类定义
          ArrayList类相当于一种高级的动态数组,它是Array类的升级版本。

        ArrayList类位于System.Collections命名空间下,它可以动态地添加和删除元素。可以将ArrayList类看作扩充了功能的数组,但它并不等同于数组。使用ArrayList类要添加引用:

        using System.Collections;

二、ArrayList类与数组的区别
        与数组相比,ArrayList类为开发人员提供了以下功能。

        ☑ 数组的容量是固定的,而ArrayList的容量可以根据需要自动扩充。

        ☑ ArrayList提供添加、删除和插入某一范围元素的方法,但在数组中,只能一次获取或设置一个元素的值。

        ☑ ArrayList提供将只读和固定大小包装返回集合的方法,而数组不提供。

        ☑ ArrayList只能是一维形式,而数组可以是多维的。

        Array的长度是它可包含的元素总数。Array的秩是Array中的维数。Array中维度的下限是Array中该维度的起始索引,多维Array的各个维度可以有不同的界限。

ArrayList 类的方法和属性

下表列出了 ArrayList 类的一些常用的 属性

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

下表列出了 ArrayList 类的一些常用的 方法

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

            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);

Add(添加数据):
集合创建后,如要对他就行赋值,就要使用Add()方法进行添加,
集合可以添加任何类型的数据

            ArrayList a = new ArrayList();
            a.Add("小马哥的棺材板"); //字符串类型

            a.Add(20);//整数类型

            a.Add(3.14);//double类型

            a.Add('x');//char类型

AddRange(数组数据等):


            ArrayList a = new ArrayList();

            int[] b = { 10, 20, 30 };

            a.AddRange(b);

            for (int i = 0; i <= a.Count - 1; i++)
                Console.WriteLine(a[i]);

  • 17
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值