欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#中ArrayList的使用方法

程序员文章站 2024-02-19 20:11:52
system.collections.arraylist类是一个特殊的数组。通过添加和删除元素,就可以动态改变数组的长度。一.优点1。支持自动改变大小的功能2。可以灵活的插...
system.collections.arraylist类是一个特殊的数组。通过添加和删除元素,就可以动态改变数组的长度。

一.优点

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;