C#中ArrayList 類的使用詳解

一:ArrayList 類簡單說明

動態數組ArrayList類在System.Collecions的命名空間下,所以使用時要加入System.Collecions命名空間,而且ArrayList提供添加,插入或移除某一范圍元素的方法。ArrayList代表瞭可被單獨索引的對象的有序集合。它基本上可以替代一個數組。但是,與數組不同的是,您可以使用索引在指定的位置添加和移除項目,動態數組會自動重新調整它的大小。它也允許在列表中進行動態內存分配、增加、搜索、排序 各項。

二:ArrayList 類的構造函數

構造函數 構造函數說明
ArrayList() 初始化 ArrayList 類的新實例,該實例為空並且具有默認初始容量。
ArrayList(ICollection) 初始化 ArrayList 類的新實例,該類包含從指定集合復制的元素,並具有與復制的元素數相同的初始容量。
ArrayList(Int32) 初始化 ArrayList 類的新實例,該實例為空並且具有指定的初始容量。

三:ArrayList 類的屬性

屬性 屬性說明
Capacity 獲取或設置 ArrayList 可包含的元素數。
Count 獲取 ArrayList 中實際包含的元素數。
IsFixedSize 獲取一個值,該值指示 ArrayList 是否具有固定大小。
IsReadOnly 獲取一個值,該值指示 ArrayList 是否為隻讀。
IsSynchronized 獲取一個值,該值指示是否同步對 ArrayList 的訪問(線程安全)
Item[Int32] 獲取或設置指定索引處的元素。
SyncRoot 獲取可用於同步對 ArrayList 的訪問的對象。

1:使用舉例說明

// 創建一個空的ArrayList,並添加一些元素.
ArrayList stringList = new ArrayList();
stringList.Add("a");
stringList.Add("abc");
stringList.Add("abcdef");
stringList.Add("abcdefg");

Console.WriteLine("Element {0} is \"{1}\"", 2, stringList[2]);
try
{
    Console.WriteLine("Element {0} is \"{1}\"", 4, stringList[4]);
}
catch (ArgumentOutOfRangeException aoore)
{
    Console.WriteLine("stringList({0}) is out of range.", 4);
}

運行結果:

Element 2 is "abcdef"
stringList(4) is out of range.

四:ArrayList 類的常用方法

方法 方法說明
Add(Object) 將對象添加到 ArrayList 的結尾處。
AddRange(ICollection) 將 ICollection 的元素添加到 ArrayList 的末尾。
Clear() 從 ArrayList 中移除所有元素。
Clone() 創建 ArrayList 的淺表副本。
Contains(Object) 確定某元素是否在 ArrayList 中。
CopyTo(Array) 從目標數組的開頭開始,將整個 ArrayList 復制到兼容的一維 Array。
Equals(Object) 確定指定對象是否等於當前對象。
GetRange(Int32, Int32) 返回一個 ArrayList,它表示源 ArrayList 中的元素子集。
IndexOf(Object) 搜索指定的 Object,並返回整個 ArrayList 中第一個匹配項的從零開始的索引。
LastIndexOf(Object) 在整個 ArrayList 中搜索指定的 Object,並返回最後一個匹配項的從零開始的索引。
Insert(Int32, Object) 將元素插入 ArrayList 的指定索引處。
Remove(Object) 從 ArrayList 中移除特定對象的第一個匹配項。
RemoveAt(Int32) 移除 ArrayList 的指定索引處的元素。
Reverse() 將整個 ArrayList 中元素的順序反轉。
Sort() 對整個 ArrayList 中的元素進行排序。
ToArray() 將 ArrayList 的元素復制到新 Object 數組中。
ToString() 返回表示當前對象的字符串。

1: AddRange(ICollection)方法使用舉例

// 創建並初始化新的ArrayList
ArrayList myAL = new ArrayList();
myAL.Add("ab");
myAL.Add("cd");
myAL.Add("efg");

// 創建並初始化新隊列.
Queue myQueue = new Queue();
myQueue.Enqueue("and");
myQueue.Enqueue("new arraylist");

// 將隊列元素復制到ArrayList的末尾.
myAL.AddRange(myQueue);

foreach (Object obj in myAL)
{
    Console.Write("{0} ",obj);
}

運行結果:

ab cd efg and new arraylist

2: ArrayList.Clone() 方法使用舉例

// 創建並初始化新的ArrayList
ArrayList myAL = new ArrayList();
myAL.Add("ab");
myAL.Add("cd");
myAL.Add("efg");

// 克隆動態數組到新的動態數組裡.
ArrayList newArray = (ArrayList)myAL.Clone();

foreach (Object obj in newArray)
{
    Console.Write("{0} ",obj);
}

運行結果:

ab cd efg

3:ArrayList.Remove(Object) 使用舉例

ArrayList myAL = new ArrayList();

myAL.Add("ab");
myAL.Add("cd");
myAL.Add("efg");
myAL.Add(true);


myAL.Remove(true);//移除單個元素
foreach (Object obj in myAL)
{
    Console.Write("{0} ", obj);
}

運行結果:

ab cd efg

4:ArrayList.RemoveAt(Int32) 使用舉例

ArrayList myAL = new ArrayList();

myAL.Add("ab");
myAL.Add("cd");
myAL.Add("efg");

myAL.RemoveAt(1);//根據下標號刪除元素
foreach (Object obj in myAL)
{
    Console.Write("{0} ", obj);
}

運行結果:

ab efg

5:ArrayList.RemoveAt(Int32) 使用舉例

ArrayList myAL = new ArrayList();

myAL.Add("ab");
myAL.Add("cd");
myAL.Add("efg");
myAL.Add("lm");
myAL.Add("nopq");

myAL.RemoveRange(1,3);//根據下標范圍刪除元素
foreach (Object obj in myAL)
{
    Console.Write("{0} ", obj);
}

運行結果:

ab nopq

6:ArrayList.Reverse() 使用舉例

ArrayList myAL = new ArrayList();

myAL.Add("ab");
myAL.Add("cd");
myAL.Add("efg");

myAL.Reverse();//反轉所有元素
foreach (Object obj in myAL)
{
    Console.Write("{0} ", obj);
}

運行結果:

efg cd ab

7:ArrayList.Insert(Int32, Object)使用舉例

ArrayList myAL = new ArrayList();

myAL.Add("ab");
myAL.Add("cd");
myAL.Add("efg");

myAL.Insert(2,"new");
foreach (Object obj in myAL)
{
    Console.Write("{0} ", obj);
}

運行結果:

ab cd new efg

8:ArrayList.InsertRange(Int32, ICollection) 使用舉例

ArrayList myAL = new ArrayList();
int[] shuzu= {1,2,3,4,5};
myAL.Add("ab");
myAL.Add("cd");
myAL.Add("efg");

myAL.InsertRange(2, shuzu);//指定位置,插入集合
foreach (Object obj in myAL)
{
    Console.Write("{0} ", obj);
}

運行結果:

ab cd 1 2 3 4 5 efg

9:ArrayList.Contains(Object) 使用舉例

ArrayList myAL = new ArrayList();
myAL.Add("ab");
myAL.Add("cd");
myAL.Add("efg");
myAL.Add("nopq");

bool b = myAL.Contains("nopq");//是否包含指定元素
Console.WriteLine("是否包含nopq = {0}", b);

運行結果:

是否包含nopq = true

到此這篇關於C#中ArrayList 類的使用詳解的文章就介紹到這瞭,更多相關C# ArrayList 內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: