一、 概念
所谓动态数组是指在程序运行时可以动态改变数组长度。前面所介绍的数组,相对应的被称为静态数组,即定义数组后,就无法更改数组长度。
在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},将它们按升序排列。要增加一个学员的成绩,将它插入成绩序列,并保持升序。