动态数组

一、 概念

所谓动态数组是指在程序运行时可以动态改变数组长度。前面所介绍的数组,相对应的被称为静态数组,即定义数组后,就无法更改数组长度。
在C#中,如果需要使用动态数组,可以使用ArrayList,不过需要在程序开头添加一个引用

using System.Collections

注:动态数组只能是一维的。

二、 ArrayList的声明与创建

有二种方式:创建时声明一个初始长度,或不声明初始长度

            ArrayList list = new ArrayList();

            ArrayList list2 = new ArrayList(10);//初始长度为10

注意:
初始长度仅仅是系统给数组开辟了一个空间,并没有实际使用,所以在未使用的状态下,其长度还是为0;
ArrayList的长度即元素的个数用count属性来表示
Console.WriteLine(list2.Count); //返回结果是list2中的元素个数

三 、ArrayList的操作

1. 赋值:顺序添加

通过Add()方法,给ArrayList添加一个元素

ArrayList arrayList = new ArrayList(10);//初始长度为10
arrayList.Add(100); //向第一个元素赋值
arrayList.Add(200);//向第二个元素赋值

2. 赋值:插入到指定的位置

insert(下标,元素值):

  • 下标从0开始,
  • 下标不能超过原有数组的长度
arrayList.Insert(1, 400);   //400插入到下标为1的位置上,原先下标为1的元素值被”挤“到后面一个位置上,依次类推

3. 删除元素:删除指定值的元素

remove():删除第一个与指明匹配的元素

            ArrayList mylist = new ArrayList(5);
            mylist.Add(200);
            mylist.Add(100);
            mylist.Add(200);
            mylist.Add(300);
            mylist.Add(100);
            foreach (var item in mylist)
            {
                Console.Write(item + " ");
            }
            mylist.Remove(100);
            Console.Write("\n");
            foreach (var item in mylist)
            {
                Console.Write(item + " ");
            }

removeAt():删除指定下标的元素
mylist.Remove(1);//删除下标为1的元素
removeRange()方法用于删除一定范围的元素
remove(int index,int count)
index:表示从第几个开始删除(从0开始计算),
count:表示要删除的个数
mylist.RemoveRange(1, 3);//表示从下标为1的元素开始,删除3个元素

四、 作业

问题描述

有一组学员的成绩{99,85,82,63, 60},将它们按升序排列。要增加一个学员的成绩,将它插入成绩序列,并保持升序。

image.png

推荐阅读更多精彩内容