当前位置: 首页 > 编程笔记 >

轻松学习C#的ArrayList类

翟鸿振
2023-03-14
本文向大家介绍轻松学习C#的ArrayList类,包括了轻松学习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#的String类,包括了轻松学习C#的String类的使用技巧和注意事项,需要的朋友参考一下 字符串是由零个或多个字符组成的有限序列,是几乎所有编程语言中可以实现的非常重要和有用的数据类型。在C#语言中,字符串是System.String类的一个引用类型,但与其他引用类型不同的是,C#将字符串视为一个基本类型,可以声明为一个常量,并可以直接赋值。由于C#中的字符串是由Sy

  • 本文向大家介绍轻松学习C#的密封类,包括了轻松学习C#的密封类的使用技巧和注意事项,需要的朋友参考一下 密封类概述        并不是所有的类都可以被继承,C#语言中就是密封类。在C#语言中我们可以把类声明为sealed。这表示不能继承该类,如果想要继承那么编译器肯定会报错。在把类或方法标记为sealed时,最可能出现的情形时:如果要对库,类或自己编写的其他类进行操作,则重写某些功能会导致编译错

  • 本文向大家介绍轻松学习C#的抽象类,包括了轻松学习C#的抽象类的使用技巧和注意事项,需要的朋友参考一下 在C#语言中有一种特殊的基类,那就是抽象类。有时候,基类并不与具体的事物联系,而是只是表达一种抽象的概念,用于为它的派生类提供一个公共的界面。为此,C#中引入了抽象类和抽象方法的概念。        抽象类概述        抽象类提供多个派生类共享基类的公共定义,它既可以提供抽象方法,也可以提

  • JavaScript 是一个轻量级的,面向对象的解释编程语言,允许我们交互的建成其他静态 HTML 网页。

  • 本文向大家介绍轻松学习C#的异常处理,包括了轻松学习C#的异常处理的使用技巧和注意事项,需要的朋友参考一下        异常是程序运行中发生的错误,异常处理是程序设计的一部分。错误的出现并不总是编写应用程序者的原因,有时候应用程序会因为终端用户的操作发生错误。无论如何,在编写程序前,都应该预测应用程序和代码中出现的错误。一般良好的编程规范也会避免一些不必要的程序错误的出现。         在项

  • 本文向大家介绍轻松学习C#的装箱与拆箱,包括了轻松学习C#的装箱与拆箱的使用技巧和注意事项,需要的朋友参考一下 首先看一看什么是装箱和拆箱?        简单的来说:        装箱就是值类型转换为引用类型;        拆箱就是引用类型转换为值类型。        值类型,包括原类型(Sbyte、Byte、Short、Ushort、Int、Uint、Long、Ulong、Char、Flo

  • 第一节 Go语言安装与测试 轻松友好的安装方式,多平台支持。 第二节 内置基础数据类型 认识Go提供的清晰的数据类型,很清晰,不骗你。 第三节 变量与常量定义 学语言绕不开的变量,当然Go是静态语言,变量都是有固定类型的,程序运行过程中无法改变变量类型。 第四节 控制流程 很简单,只有if,for,switch三种流程,连while都没有。 第五节 数组,切片和字典 内置高级数据类型。如果我们需要

  • Go轻松学是一款学习GoLang的小型学习App。基于Android平台。主要包含Go基础和Go实例两部分。 Go轻松学,可以让你随时随地浏览Go提供的独特功能,本应用提供了翔实的测试例程序,100%测试通过。并且可以根据反馈持续更新。在这里,变量,函数,结构体,指针,并行计算,包和测试都有详细的讲解。 Go基础部分由本人的读书笔记归纳整理而来,而实例部分则由网址http://gobyexampl