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

动态数组(ArrayList)

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

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

输入一个圆的半径,输出圆的面积。

输入一个圆的半径,输出圆的面积。

输入一个圆的半径,输出圆的面积。            Console.WriteLine("请输入圆的半径:");//提示 用户 输入一个...

String类常用函数

String类常用函数

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

简单的加法计算器

简单的加法计算器

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

获取最高成绩姓名和成绩

获取最高成绩姓名和成绩

在多行文本框中输入多行“姓名=成绩”格式的数据,要求输出成绩最高的学生的姓名和成绩。        private void button1_Click(object sender,&nbs...

发表评论

访客

看不清,换一张

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