轻松学习C#的ArrayList类
动态数组ArrayList类在System.Collecions的命名空间下,所以使用时要加入System.Collecions命名空间,而且ArrayList提供添加,插入或移除某一范围元素的方法。在ArrayList中,用户只能一次获取或设置一个元素的值。
一、ArrayList元素的添加
ArrayList提供了两种方法用于向ArrayList添加元素,即Add和AddRange。
(1),Add方法将单个元素添加到列表的尾部,其格式为:ArrayList 对象.Add(要添加的值)
(2),AddRange方法获取一个实现ICollection接口的集合实例,并将这个集合实例按顺序添加到列表的尾部,其格式为:ArrayList 对象.AddRange(要添加的数组)
例一、通过上述的方法对数组进行元素的添加和数组的添加
<span style="font-size:18px;">using System; using System.Collections;//需要添加的命名空间 using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 动态数组的使用 { class Program { static void Main(string[] args) { ArrayList al = new ArrayList(3);//定义的一个动态数组且初始数组元素个数为3个 Console.WriteLine("未添加前al的元素个数为:"+al.Count); al.Add("abc"); al.Add("xyz"); al.Add("opq"); Console.WriteLine("调用Add方法后al的元素个数为:"+al.Count); string[] last = { "def", "ghj" }; al.AddRange(last); Console.WriteLine("调用AddRange方法后al的元素个数为:"+al.Count); foreach (string item in al) { Console.WriteLine(item); } Console.ReadLine(); } } }</span>
输出的结果为:未添加前al的元素个数为:0
调用Add方法后al的元素个数为:3
调用AddRange方法后al的元素个数为:5
abc xyz opq def ghj(每一行输出一个)
二、ArrayList元素的删除
ArrayList提供了四种方法用于从ArrayList中删除元素。这四种方法是Remove,RemoveAt,RemoveRange方法和Clear方法。
Remove方法接受一个object类型值的参数,用于移除指定元素值的第一个匹配集合元素。其格式为:ArrayList 对象.Remove(值)
RemoveAt方法接受一个int类型的参数,用于删除指定索引的集合元素。其格式为:ArrayList 对象.RemoveAt(索引)
RemoveRange方法从集合中移除一定范围的元素。其格式为: ArrayList 对象.RemoveRange(开始索引,要删除的个数)
Clear方法清除所有的元素。
例二、用上述的方法实现对元素的删除
<span style="font-size:18px;">using System; using System.Collections;//需要添加的命名空间 using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 动态数组的使用 { class Program { static void Main(string[] args) { ArrayList al = new ArrayList(3);//定义的一个动态数组且初始数组元素个数为3个 al.Add("abc"); al.Add(50); al.Add(10); string[] last = { "def", "ghj" }; al.AddRange(last); Console.WriteLine("未删除前al的元素个数为:" + al.Count); al.RemoveAt(2);//删除索引为2后的元素 Console.WriteLine("删除索引为2后的元素个数为:"+al.Count); al.Remove("abc");//删除第一个值为abc的项 Console.WriteLine("删除值为abc后的元素个数为:"+al.Count); al.RemoveRange(1,2);//删除自索引为1的两个元素 Console.WriteLine("删除自索引为1的两个元素后的元素个数:"+al.Count); foreach (string item in al)//因为此对象中的元素类型不一致所以为object类型 { Console.WriteLine(item); } Console.ReadLine(); } } }</span>
输出的结果为:未删除前al的元素个数为:5
删除索引为2后的元素个数为:4
删除值为abc后的元素个数为:3
删除自索引为1的两个元素后的元素个数:1
xyz
三、ArrayList元素的查找
ArrayList元素的查找提供了三个方法查找ArrayList中的元素,分别是IndexOf方法,LastindexOf方法和BinarySearch方法。
(1)、IndexOf方法从前后搜素指定的字符串,如果找到,返回匹配的第一项的自0开始的索引,否则返回-1。其格式为:ArrayList 对象.IndexOf(要索引的字符串)
(2)、LastIndexOf方法从后向前搜素指定的字符串,如果找到,返回匹配的最后一项自0开始的索引,否则返回-1.其格式为:ArrayList 对象.LastIndexOf(要索引的字符串)
以上两个方法都有三个重载版本,表示从指定的索引处开始搜索或者是从指定索引处搜素指定长度的字符串。
(3)、BinarySearch方法使用二分算法从集合中指定的值,并返回找到的从0开始的索引,否则返回-1,其格式为:ArrayList 对象.BinarySearch(要索引的字符串)
例三、使用上述的方法查找指定的元素
<span style="font-size:18px;">using System; using System.Collections;//需要添加的命名空间 using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 动态数组的使用 { class Program { static void Main(string[] args) { string[] str = { "a", "b", "c", "d", "d", "e", "f" }; ArrayList al = new ArrayList(str); int i = al.IndexOf("c");//查找第一个字符c在数组中的位置 Console.WriteLine("元素c在集合中的位置是:"+i); i = al.LastIndexOf("d");//查找最后一个字符d在数组中的位置 Console.WriteLine("元素d在集合中的位置是:" + i); int j = al.BinarySearch("f");//查找元素f在数组中的位置 if (j>0) { Console.WriteLine("元素f在数组中的位置是:"+j); } else { Console.WriteLine("没有找到a"); } Console.ReadLine(); } } }</span>
输出的结果为:元素c在集合中的位置是:2
元素d在集合中的位置是:3
元素f在数组中的位置是:5
四、ArrayList元素的遍历
在执行上述程序的过程中已经使用foreach语句进行ArrayList元素的遍历,在这里就不再举例进行说明。
以上就是关于C#的ArrayList类的相关介绍,希望对大家的学习有所帮助。
相关文章
- 我们在使用C#做项目的时候,基本上都需要制作登录界面,那么今天我们就来一步步看看,如果简单的实现登录界面呢,本文给出2个例子,由简入难,希望大家能够喜欢。...2020-06-25
- 这篇文章主要介绍了C# 字段和属性的的相关资料,文中示例代码非常详细,供大家参考和学习,感兴趣的朋友可以了解下...2020-11-03
- 这篇文章主要介绍了C#中截取字符串的的基本方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-11-03
- 本文给大家分享C#连接SQL数据库和查询数据功能的操作技巧,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友参考下吧...2021-05-17
- 这篇文章主要介绍了C#实现简单的Http请求的方法,以实例形式较为详细的分析了C#实现Http请求的具体方法,需要的朋友可以参考下...2020-06-25
- 本文主要介绍了C#中new的几种用法,具有很好的参考价值,下面跟着小编一起来看下吧...2020-06-25
使用Visual Studio2019创建C#项目(窗体应用程序、控制台应用程序、Web应用程序)
这篇文章主要介绍了使用Visual Studio2019创建C#项目(窗体应用程序、控制台应用程序、Web应用程序),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25- 这篇文章主要介绍了C#开发Windows窗体应用程序的简单操作步骤,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-04-12
- 这篇文章主要介绍了C#从数据库读取图片并保存的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-16
- 最近做一个小项目不可避免的需要前端脚本与后台进行交互。由于是在asp.net中实现,故问题演化成asp.net中jiavascript与后台c#如何进行交互。...2020-06-25
- 这篇文章主要用实例讲解C#递归算法的概念以及用法,文中代码非常详细,帮助大家更好的参考和学习,感兴趣的朋友可以了解下...2020-06-25
- 本文通过例子,讲述了C++调用C#的DLL程序的方法,作出了以下总结,下面就让我们一起来学习吧。...2020-06-25
- 轻松学习C#的基础入门,了解C#最基本的知识点,C#是一种简洁的,类型安全的一种完全面向对象的开发语言,是Microsoft专门基于.NET Framework平台开发的而量身定做的高级程序设计语言,需要的朋友可以参考下...2020-06-25
- 本文主要介绍了C#变量命名规则小结,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-09
- 这篇文章主要介绍了c#中(&&,||)与(&,|)的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
- 这篇文章主要介绍了C#绘制曲线图的方法,以完整实例形式较为详细的分析了C#进行曲线绘制的具体步骤与相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
- 本文主要介绍了C# 中取绝对值的函数。具有很好的参考价值。下面跟着小编一起来看下吧...2020-06-25
- 这篇文章主要介绍了c#自带缓存使用方法,包括获取数据缓存、设置数据缓存、移除指定数据缓存等方法,需要的朋友可以参考下...2020-06-25
- 下面小编就为大家带来一篇C#学习笔记- 随机函数Random()的用法详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
- 这篇文章主要介绍了C#中list用法,结合实例形式分析了C#中list排序、运算、转换等常见操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25