C#的动态数组

在使用数组的过程中,有时候希望数组的长度和元素个数能随程序的运行不断改变,但改变一次就要重新开辟一个新的数组对象,这样将占用内存空间。为了解决这个问题,Microsoft.NET Framework 体统了一个ArrayList类,专门用于处理可按动态增减成员的数组。

ArrayList类被设计成一个动态数组,其容量会随着需要而适当的扩充。在ArrayList集合类中经常使用的方法如下。

Add()方法:向数组中添加一个元素

Remove()方法:删除数组中的某一元素

RemoveAt(int i)方法:删除数组中索引值为i的元素

Reverse()方法:反转数组的元素

Sort()方法:以从小到大的顺序排列数组的元素

Clone()方法:复制一个数组

 

ArrayList与System.Array的区别有以下几点:

①Array可以定义多维数组,ArrayList只能定义一维数组。

②Array可以定义自己的下限,ArrayList的下限始终是0

③Array的元素通常是特定类型的,Array的元素都是object类型的,所以需要进行装箱和拆箱操作,内存分配的代价高

④Array的元素数目是固定的,ArrayList的元素数目可以自动扩展

⑤ArrayList具有添加、删除、插入、移动、复制等方法

 

下面的是个小例子

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;

namespace ArrayListTest
{
    class Program
    {
        static void Main(string[] args)
        {
            ArrayList al = new ArrayList();
            //单个添加
            al.Add(100);
            //集体添加方发一
            foreach (int number in new int[6]{6, 3, 4, 1, 0 ,9})
            {
                al.Add(number);
            }
            //集体添加方法二
            int[] number2 = new int[2] {15, 21};
            al.AddRange(number2);
            //移除值为3的数
            al.Remove(3);
            //移除第3个数
            al.RemoveAt(3);

            ArrayList al2 = new ArrayList(al.GetRange(1, 3));
            Console.WriteLine("遍历方法一");
            foreach (int i in al)
            {
                //遍历方法一
                Console.WriteLine(i);
            }
            Console.WriteLine("遍历方法二");
            for (int i = 0; i <al2.Count; i++)
            {
                //一定要强制转换
                int number = (int)al2[i];
                Console.WriteLine(number);
            }
            Console.ReadLine();
        }
    }
}

 

运行结果如下:



 

由于移除了位置在3的数和数为3的数字,所以就没有了1和3,结果如上

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值