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!
推薦閱讀:
- C#中List用法介紹詳解
- C# 數組刪除元素的實現示例
- 聊聊C# 中HashTable與Dictionary的區別說明
- C# Datatable的幾種用法小結
- C#中IEnumerable、ICollection、IList、List之間的區別