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。