怎样使用C#的ArrayList类

如题所述

第1个回答  2017-08-16
一.优点

1。支持自动改变大小的功能
2。可以灵活的插入元素
3。可以灵活的删除元素

二.局限性

跟一般的数组比起来,速度上差些

三.添加元素

1.publicvirtualintAdd(objectvalue);
将对象添加到ArrayList的结尾处
ArrayListaList=newArrayList();
aList.Add("a");
aList.Add("b");
aList.Add("c");
aList.Add("d");
aList.Add("e");
内容为abcde
2.publicvirtualvoidInsert(intindex,objectvalue);
将元素插入ArrayList的指定索引处
ArrayListaList=newArrayList();
aList.Add("a");
aList.Add("b");
aList.Add("c");
aList.Add("d");
aList.Add("e");
aList.Insert(0,"aa");
结果为aaabcde
3.publicvirtualvoidInsertRange(intindex,ICollectionc);
将集合中的某个元素插入ArrayList的指定索引处
ArrayListaList=newArrayList();
aList.Add("a");
aList.Add("b");
aList.Add("c");
aList.Add("d");
aList.Add("e");
ArrayListlist2=newArrayList();
list2.Add("tt");
list2.Add("ttt");
aList.InsertRange(2,list2);
结果为abtttttcde

四.删除

a)publicvirtualvoidRemove(objectobj);
从ArrayList中移除特定对象的第一个匹配项,注意是第一个
ArrayListaList=newArrayList();
aList.Add("a");
aList.Add("b");
aList.Add("c");
aList.Add("d");
aList.Add("e");
aList.Remove("a");
结果为bcde
2.publicvirtualvoidRemoveAt(intindex);
移除ArrayList的指定索引处的元素
aList.Add("a");
aList.Add("b");
aList.Add("c");
aList.Add("d");
aList.Add("e");
aList.RemoveAt(0);
结果为bcde
3.publicvirtualvoidRemoveRange(intindex,intcount);
从ArrayList中移除一定范围的元素。Index表示索引,count表示从索引处开始的数目
aList.Add("a");
aList.Add("b");
aList.Add("c");
aList.Add("d");
aList.Add("e");
aList.RemoveRange(1,3);
结果为ae
4.publicvirtualvoidClear();
从ArrayList中移除所有元素。
五.排序
a)publicvirtualvoidSort();
对ArrayList或它的一部分中的元素进行排序。
ArrayListaList=newArrayList();
aList.Add("e");
aList.Add("a");
aList.Add("b");
aList.Add("c");
aList.Add("d");
DropDownList1.DataSource=aList;//DropDownListDropDownList1;
DropDownList1.DataBind();
结果为eabcd
ArrayListaList=newArrayList();
aList.Add("a");
aList.Add("b");
aList.Add("c");
aList.Add("d");
aList.Add("e");
aList.Sort();//排序
DropDownList1.DataSource=aList;//DropDownListDropDownList1;
DropDownList1.DataBind();
结果为abcde
b)publicvirtualvoidReverse();
将ArrayList或它的一部分中元素的顺序反转。
ArrayListaList=newArrayList();
aList.Add("a");
aList.Add("b");
aList.Add("c");
aList.Add("d");
aList.Add("e");
aList.Reverse();//反转
DropDownList1.DataSource=aList;//DropDownListDropDownList1;
DropDownList1.DataBind();
结果为edcba

六.查找

a)publicvirtualintIndexOf(object);
b)publicvirtualintIndexOf(object,int);
c)publicvirtualintIndexOf(object,int,int);
返回ArrayList或它的一部分中某个值的第一个匹配项的从零开始的索引。没找到返回-1。
ArrayListaList=newArrayList();
aList.Add("a");
aList.Add("b");
aList.Add("c");
aList.Add("d");
aList.Add("e");
intnIndex=aList.IndexOf(“a”);//1
nIndex=aList.IndexOf(“p”);//没找到,-1
d)publicvirtualintLastIndexOf(object);
e)publicvirtualintLastIndexOf(object,int);
f)publicvirtualintLastIndexOf(object,int,int);
返回ArrayList或它的一部分中某个值的最后一个匹配项的从零开始的索引。
ArrayListaList=newArrayList();
aList.Add("a");
aList.Add("b");
aList.Add("a");//同0
aList.Add("d");
aList.Add("e");
intnIndex=aList.LastIndexOf("a");//值为2而不是0
g)publicvirtualboolContains(objectitem);
确定某个元素是否在ArrayList中。包含返回true,否则返回false

七.其他

1.publicvirtualintCapacity{get;set;}
获取或设置ArrayList可包含的元素数。
2.publicvirtualintCount{get;}
获取ArrayList中实际包含的元素数。
Capacity是ArrayList可以存储的元素数。Count是ArrayList中实际包含的元素数。Capacity总是大于或等于Count。如果在添加元素时,Count超过Capacity,则该列表的容量会通过自动重新分配内部数组加倍。
如果Capacity的值显式设置,则内部数组也需要重新分配以容纳指定的容量。如果Capacity被显式设置为0,则公共语言运行库将其设置为默认容量。默认容量为16。
在调用Clear后,Count为0,而此时Capacity切是默认容量16,而不是0
3.publicvirtualvoidTrimToSize();
将容量设置为ArrayList中元素的实际数量。
如果不向列表中添加新元素,则此方法可用于最小化列表的内存系统开销。
若要完全清除列表中的所有元素,请在调用TrimToSize之前调用Clear方法。截去空ArrayList会将ArrayList的容量设置为默认容量,而不是零。
ArrayListaList=newArrayList();
aList.Add("a");
aList.Add("b");
aList.Add("c");
aList.Add("d");
aList.Add("e");//Count=5,Capacity=16,
aList.TrimToSize();//Count=Capacity=5;

C# 怎么把ArrayList数组进行循环?
1)构造器 ArrayList提供了三个构造器: public ArrayList(); 默认的构造器,将会以默认(16)的大小来初始化内部的数组 public ArrayList(ICollection); 用一个ICollection对象来构造,并将该集合的元素添加到ArrayListpublic ArrayList(int); 用指定的大小来初始化内部的数组 2)IsSynchronized属性和ArrayList....

C# 怎么把ArrayList数组进行循环
第一种是for循环通过索引来访问 ArrayList students = new ArrayList();for (int i = 0; i < students.Count; i++){ Student stuFor = (Student)students[i];Console.WriteLine(stuFor.Name);} 第二种是:foreach循环遍历 foreach (Object stuo in students){ Student stuForeach = (Studen...

C#数组如何添加元素
1、使用ArrayList来定义数组,Arraylist 有add、Insert方法,可以自由向数组中添加新数据。2、向数组中增加一个元素,运行数组测试程序,并向控制台输出结果,arraylist.Add(5);\/\/添加数组元素 Console.WriteLine("2.数组列表的容量为{0},实际包含{1}个元素:",arraylist.Capacity,arraylist.Count);3、...

C#中 arraylist 能添加二维数组吗?如果能的话要怎么初始化?
ArrayList本身只支持1维,如果要实现2维的话,一种做法是ArrayList里面再放ArrayList。ArrayList list = new ArrayList();for(int i = 0; i < 5; i++){ list.Add(new ArrayList());} 可以这样访问:object obj = list[a][b];

c#中如何循环定义Arraylist数组?名称不同
可以换种思路 List<ArrayList > arrays=new List<ArrayList >();for(int i=0;i<=9;i++){ ArrayList aList = new ArrayList();arrays.add(aList);} 因为你是按照i的顺序加入的泛型集合,所以你可以用下标调用 array[i]...

如何使用集合ArrayList
C#中没有真正意义上的动态数组,在程序中动态改变数组长度时可用ArrayList来替代,一般要在开头加入using System.Collections;然后声明和创建:1:ArrayList arr=new ArrayList();2:ArrayList arr=new ArrayList(10);\/\/初始化一个长度为10的ArrayList.我也是初学.动态数组运用也不是太熟练!呵呵 多看看书,多...

c# 中,我有一个ArrayList ,我通过.add加入元素后,我想知道这个元素是不...
Add这个方法,每次都是加到ArrayList的最后的,所以是按顺序加进去的。如果知道一个值,可以用 int nIndex = alist.IndexOf(元素值);返回值是此元素的索引,没找到的话返回-1.不明白的再问哟,望及时采纳,多谢!

C#数组如何添加元素
在C#中,数组的管理可以通过多种方式实现,尤其是当涉及到动态添加元素时。首先,使用ArrayList可以方便地处理这个问题,因为它提供了add和Insert方法。例如,如果你想在数组中插入一个新元素,可以这样做:在ArrayList中,你可以直接调用Add方法,如arraylist.Add(5),这会向数组中插入一个新元素。然后,你...

C#数组如何添加元素
在C#中,数组元素的添加方法多种多样。首先,利用ArrayList类,你可以便捷地操作数组,它提供了add和Insert方法。例如,如果你想在数组中插入一个新元素,如5,只需使用***.add(5);同时,可以通过writeline方法输出ArrayList的容量和实际元素数量,如***.writeline("2. 数组列表的容量为{0},实际包含{...

c#中ArrayList有几种方式来移除元素?
在 C# 中,ArrayList 类提供了多种方式来移除元素:使用 Remove 方法移除单个元素,需要提供要移除的元素的值。这个方法只移除第一个匹配的元素。ArrayList list = new ArrayList();list.Add(1);list.Add(2);list.Add(3);list.Remove(2); \/\/ 移除元素 2 使用 RemoveAt 方法移除指定位置上的元素...

相似回答