可以将集合看成长度可变的,有很多方法的数组。
1.添加数据
往集合里面添加数据 : Add( ) (添加的内容,无限添加)
添加int数组,要遍历出来 通过下标可以改变某个索引的值
2.集合插入数据的方法
①通过构造函数可以添加一个数组
②通过Add()方法可以添加数组-----------------但是算成一个元素
通过AddRange()也可以添加数组------------数组中元素的数量
int [] nums = new int [] {1,2,3,4,5};
arrayList.AddRange(nums);
③集合插入数据
ArrayList al = new ArrayList();//实例化
al.Add(1);
al.Add(3);
al.Add(5);
al.Add(7);
al.Add(9);
for (int i = 1; i <=10; i+=2)
{
al.Insert(i, i + 1);
}
for (int i = 0; i < al.Count ; i++)
{
Console.WriteLine(al[i]);
}
Console.ReadKey();
3.集合的常用方法
al.Clear();//清空
al.Contains(2);//判断这个集合中是否包含这个元素
int number = al.IndexOf(2);//找某一个元素对应的索引
al.InsertRange(4,nums);//往某一个索引位置插入一个数组
al.Remove(1);
al.RemoveAt(1);//移除索引对应的值
al.RemoveRange(3, 100);//从指定索引处开始移除,移除多少个,超出索引报异常
al.Reverse();//反转
al.Sort();//排序
4.集合练习1:求集合元素总和和平均值
static void Main(string[] args)
{
ArrayList arraylist = new ArrayList();
int sum = 0;
for (int i = 1; i <= 100; i++)
{
arraylist.Add(i);
//为什么 sum += (int)arraylist[i];不写到这?下标到99
}
for (int i = 0; i < arraylist .Count ; i++)
{
if(arraylist [i] is int)//判断是否可以转换为int类型
{
sum += (int)arraylist[i];//强制转换
}
}
double avg = sum * 1.0 / arraylist.Count;
Console.WriteLine(sum);
Console.WriteLine(avg);
Console.ReadKey();
}
集合练习2:随机往结合中添加10个数据,不能重复,在求和与平均值
ArrayList arr = new ArrayList();
Random r = new Random();
while (arr.Count!=10)
{
int num = r.Next(1, 100);
if (!arr.Contains (num))
{
arr.Add(num);
}
}
int sum = 0;
for (int i = 0; i < arr.Count; i++)
{
if(arr[i] is int)
{
sum += (int)arr[i];
}
Console.WriteLine(arr[i]);
}
double avg = sum * 1.0 / arr.Count;
Console.WriteLine(sum);
Console.WriteLine(avg);
Console.ReadKey();