C#中ArrayList类的使用
ArrayList类
使用大小可按须要动态添加的数组实现IList接口
命名空间:System.Collections
程序集:mscorlib
语法:
public class ArrayList:IList, ICollection, IEnumerable, ICloneable
1.ArrayList加入元素
1.1 ArrayList.Add方法:
语法:public virtual int Add(Object value)
将对象加入到ArrayList的结尾处
ArrayList myAL = new ArrayList();
myAL.Add("Hello");
myAL.Add(123);
myAL.Add("!");
myAL.Add("wang");
这里须要注意的是ArrayList中能够接受数据类型不同的元素!
ArrayList接受空引用作为有效值而且同意反复的元素。
从Add方法的语法能够看到參数类型为Object,因此在运行ArrayList.Add时,须要进行装箱操作。
1.2 ArrayList.AddRange方法:
将ICollection的元素加入到ArrayList的末尾
语法:public virtual void AddRange(ICollection c)
ArrayList myAL0 = new ArrayList();
myAL0.Add( "The" );
myAL0.Add( "quick" );
myAL0.Add( "brown" );
myAL0.Add( "fox" );
// Creates and initializes a new Queue.
Queue myQueue = new Queue();
myQueue.Enqueue( "jumped" );
myQueue.Enqueue( "over" );
myQueue.Enqueue( "the" );
myQueue.Enqueue( "lazy" );
myQueue.Enqueue( "dog" );
Console.WriteLine( "The ArrayList initially contains the following:" );//The quick brown fox
Console.WriteLine( "The Queue initially contains the following:" );// jumped over the lazy dog
myAL.AddRange( myQueue );
Console.WriteLine( "The ArrayList now contains the following:" );//The quick brown fox jumped over the lazy dog
2.使用索引器进行訪问:
int i = (int)myAL[1];
能够看到上诉语句进行了拆箱,myAL[1]的类型为object。须要把引用类型转化为值类型。
3.ArrayList删除元素(Remove, RemoveAt, RemoveRange)
3.1 ArrayList.Remove方法
从ArrayList中移除特定对象的第一个匹配项,注意是第一个(ArrayList中同意反复元素)。
语法:public virtual void Remove(Object obj)
myAL.Remove(123);
运行完上诉代码。已移除元素以下的元素将上移以占领空出的位置,即myAL[0] = "Hello", myAL[1] = "!", myAL[2] = "wang"
myAL.Remove(456);
运行完上诉代码,假设ArrayList不包括指定对象,则ArrayList保持不变,且不引发异常。
3.2 ArrayList.RemoveAt方法
移除ArrayList的指定索引处的元素
语法:public virtual void RemoveAt(int index)
myAL.RemoveAt(1);
运行完上诉代码。已移除元素以下的元素将上移以占领空出的位置,即myAL[0] = "Hello", myAL[1] = "wang"
假设索引小于0或者大于等于Count,则引发ArgumentOutOfRangeException异常。
3.3 ArrayList.RemoveRange方法
从ArrayList中移除一定范围的元素
语法:public virtual void RemoveRange(int index, int count)
myAL.Add("wu");
myAL.Add("zhang");
myAL.Add("liu");//此时myAL为 "Hello" "wang" "wu" "zhang" "liu"
myAL.RemoveRange(1, 2);
运行完上诉代码,myAL为 "Hello" "zhang" "liu"
4.ArrayList.Capacity属性
获取或设置ArrayList可包括的元素数
语法:public virtual int Capacity{get; set; }
能够通过调用TrimToSize或通过显示设置Capacity属性降低容量。
4.1 ArrayList.TrimToSize方法
将容量设置为ArrayList中元素的实际数目
若要将ArrayList重置为它的初始状态,在调用TrimToSize之前调用Clear方法。修正空ArrayList会将ArrayList的容量设置为默认容量
ArrayList myAL1 = new ArrayList();
myAL1.Add( "The" );
myAL1.Add( "quick" );
myAL1.Add( "brown" );
myAL1.Add( "fox" );
myAL1.Add( "jumped" );
Console.WriteLine( " Count : {0}", myAL1.Count );//5
Console.WriteLine( " Capacity : {0}", myAL1.Capacity );//16
myAL1.TrimToSize();
Console.WriteLine( " Count : {0}", myAL1.Count );//5
Console.WriteLine( " Capacity : {0}", myAL1.Capacity );//5
myAL1.Clear();
Console.WriteLine( " Count : {0}", myAL1.Count );//0
Console.WriteLine( " Capacity : {0}", myAL1.Capacity );//5
myAL1.TrimToSize();
Console.WriteLine( " Count : {0}", myAL1.Count );//0
Console.WriteLine( " Capacity : {0}", myAL1.Capacity );//16
4.2 ArrayList.Clear方法
从ArrayList中移除全部元素
语法:public virtual void Clear()
注意:Count被设置为零,可是Capacity保持不变
5.ArrayList.Count属性
获取ArrayList中实际包括的元素数
语法:public virtual int Count{get;}
与Capacity的差别:
Capacity是ArrayList能够存储的元素数。
Count是ArrayList中的实际元素数。
Capacity总是大于或等于Count。
假设加入元素时Count超过Capacity,则通过在复制旧元素和加入新元素之前又一次分配内部数组来使容量自己主动添加。
6.ArrayList插入元素
6.1 ArrayList.Insert方法
将元素插入ArrayList的指定索引处
语法:public virtual void Insert(int index, Object value);
注意 要插入的value能够为NULL
6.2 ArrayList.InsertRange方法
将集合中的某个元素插入ArrayList的指定索引处
语法:public virtual void InsertRange(int index, ICollection c);
注意 集合本身不能为NULL。但它能够包括为NULL的元素
/*-----------------------------------------------------------------------------*/
ArrayList还有非常多的属性和方法,这里就不一一赘述,能够查阅msdn
C#中ArrayList类的使用的更多相关文章
- Java中ArrayList类详解
1.什么是ArrayList ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处: 动态的增加和减少元素 实现了ICollection和ILis ...
- Java中 ArrayList类常用方法和遍历
ArrayList类对于元素的操作,基本体现在——增.删.查.常用的方法有: public boolean add(E e) :将指定的元素添加到此集合的尾部. public E remove(in ...
- [转] Java中ArrayList类的用法
1.什么是ArrayList ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处: 动态的增加和减少元素 实现了ICollection和ILis ...
- Java中ArrayList类的用法
1.什么是ArrayList ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处: 动态的增加和减少元素 实现了ICollection和ILis ...
- Java中ArrayList类
ArratList 类:存放同一数据类型容器(只能为引用数据类型,因实际其内部存放的是地址) 1.导入其所在包 import java.util.ArratList 2.创建对象 ArrayList& ...
- Java中 ArrayList类的使用
java.util.ArrayList 是大小可变的数组的实现,存储在内的数据称为元素.此类提供一些方法来操作内部存储 的元素. ArrayList 中可不断添加元素,其大小也自动增长. ArrayL ...
- ArrayList类中的contains()方法底层依赖的是equals()方法
ArrayList类中的contains()方法底层依赖的是equals()方法.若集合中的元素是自定义对象,则应该重写该类父类Object的equals()方法,否则对象永远都不相同(因为都是new ...
- 实现一个自定义的ArrayList类,实现将原List中的每个数据都乘以10
1.首先自定义一个Operate接口,如下所示: public interface Operate { public Integer caozuo(Integer i); } 2.实现自定义的Arra ...
- 详解Java中ArrayList、Vector、LinkedList三者的异同点(转)
本文转自http://my.oschina.net/zzw922cn/blog/491631 一.ArrayList ArrayList是一个可以处理变长数组的类型,这里不局限于“数”组,ArrayL ...
随机推荐
- HDU 1106 排序(排序)
输入一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个整数就是由若干个‘0’组成的,这时这个整数 ...
- office中密码的移除方法
密码有两种,一种是修改密码,一种是访问密码,通常两种密码的创建位置不同.对于访问密码,只需要在文件→信息 中将密码删除 对于修改密码,则要输入密码以后另存,然后在保存窗口里边点工具,下拉菜单里选常规选 ...
- RPD Volume 172 Issue 1-3 December 2016 评论01
Evaluation of Imaging Dose From Different Image Guided Systems During Head and Neck Radiotherapy: A ...
- mdadm Raid5 /dev/md0 lost a disk and recovery from another machine
centos -- how to add a new disk into a mdadm raid5 /dev/md0 which lost a /dev/sdc1 disk and revoery ...
- cnblogs的代码高亮
由于不喜欢cnblogs原来的代码高亮方案,于是自己瞎搞,外加看这位大神的blog以及BZOJ的代码高亮,终于是搞出来了...讲讲怎么弄吧. 当然对于了解css的大神可以无视以下文字…… 其实就是登上 ...
- 北京DAY1下午
省选模拟题 周子凯 题目概况 中文题目名 简易比特币 计算 路径 英文题目名 bit calculation Path 输入文件名 bit.in calculation.in path.in 输出文件 ...
- Exercise03_12
import java.util.Scanner; public class Palindrome { public static void main(String[] args){ int a; S ...
- Java学习笔记(6)
java是面向对象的语言. 对象:真实存在的唯一的事物. 类:实际就是对某种类型事物的共性属性与行为的抽取 面向对象的计算机语言的核心思想:找适合的对象做适合的事情. 如何找适合的对象呢: 1.sun ...
- nginx+php-fpm 报错Primary script unknown
报错信息(nginx日志): // :: [crit] #: * stat() : Permission denied), client: 172.21.205.25, server: localho ...
- Ubuntu 16.04下使用UNetbootin制作的ISO镜像为U盘启动出现:Missing Operating System (mbr.bin)
通过以下方式进行排查: 1.确定U盘是否真的有启动系统 2.分区是否已经标记为激活状态,尤其使用了Fdisk进行分区时,如果分区>=2时默认是不设置激活分区. 比如下面是通过Fdisk进行设置分 ...