C#非泛型集合类-ArrayList删除元素

时间:2021-04-21 17:01:25

ArrayList提供了三种方法将指定元素从集合中移除,这三种方法是Remove、RemoveAt和RemoveRange方法。

—Remove方法接受一个object类型值的参数,用于移除指定元素值的第一个匹配集合元素。
—RemoveAt方法接受一个int类型的参数,用于删除指定索引的集合元素。
—RemoveRange方法从集合中移除一定范围的元素。

这三个方法的声明如下所示。

public void Remove(object obj);
//从ArrayList实例中删除与obj值匹配的第一个元素

public void RemoveAt(int index);
//删除指定索引位置index的元素

 

public void RemoveRange(int index, int count);
//从指定索引位置index开始,移除count个元素

public void Clear();
//可以移除所有元素

下面示例演示了使用Remove方法:

using System;
using System.Collections;
class Program
{
static void Main(string[]args)
{
    ArrayList al = new ArrayList(20);
    al.AddRange(new string[8]
    {
      "元素一", "元素二", "元素三", "元素四", "元素五", "元素六", "元素七",
        "元素八"
    }
    );
    //调用Remove方法删除配置元素
    al.Remove("元素二");
    //调用RemoveAt方法删除指定索引位置元素
    al.RemoveAt(2);
    //调用RemoveRange方法删除指定范围的元素
    al.RemoveRange(3, 2);
    foreach (string s in al)
    {
      Console.WriteLine(s);
    }
    Console.ReadLine();
}
}

结果为:
元素一
元素三
元素五
元素八

这里要注意:当删除一个元素后,删除位置后的所有元素都会自动递增一个位置,即索引值减1。

我们再看一个例子:

ArrayList lst=new ArrayList();
lst.Add("香蕉");
lst.Add(“苹果”);
lst.Add(“芒果”);
lst.Remove(“苹果”);//删除元素苹果
lst.RemoveAt(1);//删除元素芒果
lst.Clear();//删除所有元素

这个例子赋值后,香蕉的索引值为0,苹果的值为索引值为1,删除了苹果后,芒果的索引值变为1,所以删除元素芒果时参数为1。