1、命名空间:
using System.Collections;
2、简介:
ArrayList就是传说中的动态数组,它可以动态的增加和减少元素,另外它可以存储任意个数和任意类型的元素。
3、属性
Count属性是目前ArrayList包含的元素的数量,这个属性是只读的 Capacity属性是目前ArrayList能够包含的最大数量,可以手动的设置这个属性,但是当设置为小于Count值的时候会引发一个异常。
4、方法
Add(v):添加一个元素(参数v,任何类型)到当前列表的末尾 ;
AddRange方法用于添加一批元素到当前列表的末尾 ;
Remove方法用于删除一个元素,通过元素本身的引用来删除 ;
RemoveAt(i):方法用于删除一个元素,通过索引值(参数i)来删除 ;
RemoveRange用于删除一批元素,通过指定开始的索引和删除的数量来删除 ;
Insert用于添加一个元素到指定位置,列表后面的元素依次往后移动 ;
InsertRange用于从指定位置开始添加一批元素,列表后面的元素依次往后移动 ;
Clear():方法用于清除现有所有的元素 ;
Contains(v):方法用来查找某个对象(参数v)在不在列表之中 ;
ToArray(Type t):这个方法把ArrayList的元素Copy到一个新的数组中,参数为Type类型;
5、ArrayList与数组转换
----元素类型相同的转换
a、ArrarList 转换为 string[]
ArrayList list = new ArrayList();
list.Add("aaa");
list.Add("bbb");
string[] arrString = (string[])list.ToArray(typeof(string)); //转换成数组
b、string[] 转换为 ArrarList
ArrayList list = new ArrayList(new string[] { "aaa", "bbb" });
c、ArrayList 转换为 string
ArrayList list = new ArrayList();
list.Add("aaa");
list.Add("bbb");
string str= string.Join(",", (string[])list.ToArray(typeof( string)));
d、CopyTo()
int[] list3 = new int[list.Count];
list.CopyTo(list3)
----元素类型不同的转换
ArrayList arr = new ArrayList(){ "北京", 1}; //往数组中添加不同类型的元素
object[] arr2 = (object[])arr.ToArray(typeof(object)); //正确
string[] arr3 = (string[])arr.ToArray(typeof(string)); //有人说是错的,我测试没出问题,所以正确
6、实例
ArrayList arr = new ArrayList();
for (int i = 0; i < 7; i++)
{
arr.Add(i);// 向数组里添加元素
}
arr.Insert(arr.Count, 11);// 向数组插入元素(arr.Count索引,11为值)
arr.AddRange(new int[] { 12, 13 }); // 在ArrayList末尾添加元素
7、往一个数组里添加一个数组,即将ArrayList变为二维数组
ArrayList list= new ArrayList();
int[] arr = { 88, 99 };
for (int i = 0; i < 7; i++)
{
list.Add(new ArrayList(arr));
}
调用该数组的某个值: int value = (int)((ArrayList)list[1])[1];