当前位置:首页 > C#学习 > 正文内容

动态数组(ArrayList)

小道6年前 (2018-08-31)C#学习3102

ArrayList是命名空间System.Collections下的一部分,在使用该类时必须进行引用,同时继承了IList接口,提供了数据存储和检索。ArrayList对象的大小是按照其中存储的数据来动态扩充与收缩的。所以,在声明ArrayList对象时并不需要指定它的长度。

动态数组(ArrayList)代表了可被单独索引的对象的有序集合。它基本上可以替代一个数组。但是,与数组不同的是,您可以使用索引在指定的位置添加和移除项目,动态数组会自动重新调整它的大小。它也允许在列表中进行动态内存分配、增加、搜索、排序各项。

缺点:

因为ArrayList会把所有插入其中的数据当作为object类型来处理,在我们使用ArrayList处理数据时,很可能会报类型不匹配的错误,也就是ArrayList不是类型安全的。在存储或检索值类型时通常发生装箱和取消装箱操作,带来很大的性能耗损。

ArrayList 类的方法和属性

下表列出了 ArrayList 类的一些常用的 属性:


属性描述
Capacity获取或设置 ArrayList 可以包含的元素个数。
Count获取 ArrayList 中实际包含的元素个数。
IsFixedSize获取一个值,表示 ArrayList 是否具有固定大小。
IsReadOnly获取一个值,表示 ArrayList 是否只读。
Item获取或设置指定索引处的元素。


下表列出了 ArrayList 类的一些常用的 方法:



序号方法名 & 描述
1public virtual int Add( object value ); 
       在 ArrayList 的末尾添加一个对象。
2public virtual void AddRange( ICollection c ); 
       在 ArrayList 的末尾添加 ICollection 的元素。
3public virtual void Clear();
       从 ArrayList 中移除所有的元素。
4public virtual bool Contains( object item ); 
       判断某个元素是否在 ArrayList 中。
5public virtual ArrayList GetRange( int index, int count ); 
       返回一个 ArrayList,表示源 ArrayList 中元素的子集。
6public virtual int IndexOf(object);
       返回某个值在 ArrayList 中第一次出现的索引,索引从零开始。
7public virtual void Insert( int index, object value ); 
       在 ArrayList 的指定索引处,插入一个元素。
8public virtual void InsertRange( int index, ICollection c ); 
       在 ArrayList 的指定索引处,插入某个集合的元素。
9public virtual void Remove( object obj ); 
       从 ArrayList 中移除第一次出现的指定对象。
10public virtual void RemoveAt( int index ); 
       移除 ArrayList 的指定索引处的元素。
11public virtual void RemoveRange( int index, int count ); 
       从 ArrayList 中移除某个范围的元素。
12public virtual void Reverse();
       逆转 ArrayList 中元素的顺序。
13public virtual void SetRange( int index, ICollection c ); 
       复制某个集合的元素到 ArrayList 中某个范围的元素上。
14public virtual void Sort();
       对 ArrayList 中的元素进行排序。
15public virtual void TrimToSize();
       设置容量为 ArrayList 中元素的实际个数。

创建一个动态数组:


        static void Main(string[] args)
        {
            ArrayList al = new ArrayList();//创建一个动态数组
            al.Add(111);//可以添加整型
            al.Add("abc");//可以添加字符串
            al.Add(2113);//可以添加整型
            al.Add(455.55);//可以添加小数点
            al.Add(-10);//可以添加负数
            al.Add("123");//可以添加字符串
            al.Add(888);//可以添加整型
            al.Remove(2113);//删除整型
            Console.WriteLine(al.Contains("123"));//查找动态数组中是否包含“123”字符串。
            foreach (var i in al)//遍历动态数组。var可变的类型
            {
                Console.WriteLine(i);//输出
            }
            Console.ReadKey();
        }

输出结果:


image.png

扫描二维码推送至手机访问。

版权声明:本文由小道发布,如需转载请注明出处。

本文链接:https://daobk.com/post/96.html

分享给朋友:

“动态数组(ArrayList)” 的相关文章

while语句:编写聊天机器人,如果问“今天天气怎么样?”则回答天气 ,如果问……,如果说“88”,则“再见”。

while语句:编写聊天机器人,如果问“今天天气怎么样?”则回答天气 ,如果问……,如果说“88”,则“再见”。

while语句:编写聊天机器人,如果问“今天天气怎么样?”则回答天气 ,如果问……,如果说“88”,则“再见”。            Console.WriteLine(&quo...

字符串的处理

字符串的处理

C#中单个字符用单引号包含就是char类型,('a'),单引号中放且只能放一个字符。单个字符也可以表示为字符串,还可以有长度为0的字符串使用s.Length属性来获得字符串中的字符个数string可以看做是char的只读数组。char c = s[1];。C#中字符串有一个重要的特性...

String类常用函数

String类常用函数

String类常用函数ToLower():得到字符串的小写形式。注意字符串是不可变的,所以这些函数都不会直接改变字符串的内容,而是把修改后的字符串的值通过函数返回值的形式返回。ToUpper():得到字符串的大写形式; Trim()去掉字符串两端的空白。s1.Equals(s2, StringCom...

对象的引用

对象的引用

int、decimal、bool、byte等基础类型(值类型)是传递拷贝;对象(引用类型)则是传递引用。(引用类型包括:类、数组、接口、string)因为基础类型不怎么占内存,而对象则比较占内存。    class Program  &n...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。