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

动态数组(ArrayList)

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

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)” 的相关文章

机器人:具有模糊判断

机器人:具有模糊判断

自己动手写聊天机器人,能够回答不同城市的天气、回答感情问题、问的次数过多还会饿死,提问可以模糊提问(包含指定关键词)。问“天气:北京”就回复“今天北京天气很好。”。        static void&nbs...

定义类:一个类可有有多个实例。

定义类:一个类可有有多个实例。

一个类可有有多个实例。类就是把一系列相关的变量(状态)、行为定义为一个整体。字段记录的就是这个对象相关的数据。    class Program     {     ...

简单的加法计算器

简单的加法计算器

简单的加法计算器,用户在文本框1、2中输入两个数,点击按钮,在文本框3中显示两个数的和。如果1或者2为错误的数据格式,则弹出对话框提示错误。int.TryParse、MessageBox.Show。        pri...

求两个数之间的所有数的总和。

求两个数之间的所有数的总和。

用户在文本框1、2中输入两个数,点击按钮,在文本框3中显示从文本框1中的数字到文本框2中数字之间的累加和。如果1或者2为错误的数据格式,则弹出对话框提示错误。如果文本框1中的数字比文本框2中数字大,则提示错误。       pri...

发表评论

访客

看不清,换一张

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