## 是什么?
集合对于我们来说相对陌生,因为我们接触的语言并不多,那么我们为什么要引入集合呢?因为集合有以下几种优点:
1、可以放各种类型的数据
2、可以方便灵活的处理数据
3、可以让我们的代码活起来,减少代码量**
## 怎么用?
**步骤一:添加命名空间——using system.collections;**
**步骤二:声明**
语法格式:ArrayList 名字=new ArrayList();
举例:
ArrayList al = new ArrayList();
**步骤三:各种方法的调用**
任何一个工具都有它自身的方法,集合也有它本身的好多方法,有了这些方法才能让集合帮助我们完成各种功能
方法一:添加——Add
举例如下:
ArrayList al = new ArrayList();
for(int i=1;i<10;i+=2)
{
al.Add(i);
}
for(int i=0;i<al.Count;i++)
{
Console.WriteLine(al[i]);
}
以上这段代码的意思是往al集合中添加奇数
下面这段代码可以实现同样的功能
//al.Add(1);
//al.Add(3);
//al.Add(5);
//al.Add(7);
//al.Add(9);
//for(int i=0;i<al.Count;i++)
//{
// Console.WriteLine(al[i]);
//}
for (int i = 1; i <= 10; i += 2)
{
al.Insert(i, i + 1);//往数组中插入元素
}
这两段代码都实现了输出结果是1 3 5 7 9这个功能,那么它俩有啥区别呢?如果是你,你会选择哪种编码方式呢?
**添加类:
代码如下:**
else if (arraylist[i] is Person)
{
((Person)arraylist[i]).Say();//强制转换集合为person类,这样可以调用类中的方法
}
else
{
Console.WriteLine(arraylist[i]);
}
辨析addrange和add
Addrange把数组看成是一个一个的元素,是单个的个体,而Add是把数组看成是一个集体,看成是一个单元
举例:
al.Add(1);
al.Add("老牛");
int[] nums = new int[] { 1, 2, 3, 4, 5, 6 };
al.AddRange(nums);//将这个数组中所有的元素都看成是单个的每个元素
al.Add(nums);//将这个数组看成一个元素
**方法二:清空——Clear**
这个方法比较简单,直接 al.clear,就可以清空集合中所有的元素了
**方法三:添加——Contains**
al.Contains(1);//判断这个集合中是否包含这个元素
**方法四: 查找索引——indexof**
int number = arraylist.IndexOf(2);//找某一个元素对应的索引
**方法五:插入——insertRange**
int[] nums = { 1, 2, 3 };
arraylist.InsertRange(4, nums);//往某一个索引位置插入一个数组
**方法六:移除——remove**
1、移除某个元素用remove
注意:只能移除一个元素,默认是从前往后排的
eg:arraylist.Remove(1);//移除某个元素,只能移除一个
2、移除索引对应的值用RemoveAt(索引)
eg:arraylist.RemoveAt(1);//移除索引对应的值
3、从指定索引处开始移除,移除多少个,如果超出索引报异常,用RemoveRange
eg:al.RemoveRange(3, 4);从索引为 3的地方开始,移除四个
方法七:反转和排序
反转用reverse();默认为从大到小
排序用sort();默认为从小到大