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。