C#中ArrayList?類的使用詳解
一:ArrayList 類簡單說明
動態(tài)數(shù)組ArrayList類在System.Collecions的命名空間下,所以使用時要加入System.Collecions命名空間,而且ArrayList提供添加,插入或移除某一范圍元素的方法。ArrayList代表了可被單獨(dú)索引的對象的有序集合。它基本上可以替代一個數(shù)組。但是,與數(shù)組不同的是,您可以使用索引在指定的位置添加和移除項(xiàng)目,動態(tài)數(shù)組會自動重新調(diào)整它的大小。它也允許在列表中進(jìn)行動態(tài)內(nèi)存分配、增加、搜索、排序 各項(xiàng)。
二:ArrayList 類的構(gòu)造函數(shù)
| 構(gòu)造函數(shù) | 構(gòu)造函數(shù)說明 |
|---|---|
| ArrayList() | 初始化 ArrayList 類的新實(shí)例,該實(shí)例為空并且具有默認(rèn)初始容量。 |
| ArrayList(ICollection) | 初始化 ArrayList 類的新實(shí)例,該類包含從指定集合復(fù)制的元素,并具有與復(fù)制的元素?cái)?shù)相同的初始容量。 |
| ArrayList(Int32) | 初始化 ArrayList 類的新實(shí)例,該實(shí)例為空并且具有指定的初始容量。 |
三:ArrayList 類的屬性
| 屬性 | 屬性說明 |
|---|---|
| Capacity | 獲取或設(shè)置 ArrayList 可包含的元素?cái)?shù)。 |
| Count | 獲取 ArrayList 中實(shí)際包含的元素?cái)?shù)。 |
| IsFixedSize | 獲取一個值,該值指示 ArrayList 是否具有固定大小。 |
| IsReadOnly | 獲取一個值,該值指示 ArrayList 是否為只讀。 |
| IsSynchronized | 獲取一個值,該值指示是否同步對 ArrayList 的訪問(線程安全) |
| Item[Int32] | 獲取或設(shè)置指定索引處的元素。 |
| SyncRoot | 獲取可用于同步對 ArrayList 的訪問的對象。 |
1:使用舉例說明
// 創(chuàng)建一個空的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);
}運(yùn)行結(jié)果:
Element 2 is "abcdef"
stringList(4) is out of range.
四:ArrayList 類的常用方法
| 方法 | 方法說明 |
|---|---|
| Add(Object) | 將對象添加到 ArrayList 的結(jié)尾處。 |
| AddRange(ICollection) | 將 ICollection 的元素添加到 ArrayList 的末尾。 |
| Clear() | 從 ArrayList 中移除所有元素。 |
| Clone() | 創(chuàng)建 ArrayList 的淺表副本。 |
| Contains(Object) | 確定某元素是否在 ArrayList 中。 |
| CopyTo(Array) | 從目標(biāo)數(shù)組的開頭開始,將整個 ArrayList 復(fù)制到兼容的一維 Array。 |
| Equals(Object) | 確定指定對象是否等于當(dāng)前對象。 |
| GetRange(Int32, Int32) | 返回一個 ArrayList,它表示源 ArrayList 中的元素子集。 |
| IndexOf(Object) | 搜索指定的 Object,并返回整個 ArrayList 中第一個匹配項(xiàng)的從零開始的索引。 |
| LastIndexOf(Object) | 在整個 ArrayList 中搜索指定的 Object,并返回最后一個匹配項(xiàng)的從零開始的索引。 |
| Insert(Int32, Object) | 將元素插入 ArrayList 的指定索引處。 |
| Remove(Object) | 從 ArrayList 中移除特定對象的第一個匹配項(xiàng)。 |
| RemoveAt(Int32) | 移除 ArrayList 的指定索引處的元素。 |
| Reverse() | 將整個 ArrayList 中元素的順序反轉(zhuǎn)。 |
| Sort() | 對整個 ArrayList 中的元素進(jìn)行排序。 |
| ToArray() | 將 ArrayList 的元素復(fù)制到新 Object 數(shù)組中。 |
| ToString() | 返回表示當(dāng)前對象的字符串。 |
1: AddRange(ICollection)方法使用舉例
// 創(chuàng)建并初始化新的ArrayList
ArrayList myAL = new ArrayList();
myAL.Add("ab");
myAL.Add("cd");
myAL.Add("efg");
// 創(chuàng)建并初始化新隊(duì)列.
Queue myQueue = new Queue();
myQueue.Enqueue("and");
myQueue.Enqueue("new arraylist");
// 將隊(duì)列元素復(fù)制到ArrayList的末尾.
myAL.AddRange(myQueue);
foreach (Object obj in myAL)
{
Console.Write("{0} ",obj);
}運(yùn)行結(jié)果:
ab cd efg and new arraylist
2: ArrayList.Clone() 方法使用舉例
// 創(chuàng)建并初始化新的ArrayList
ArrayList myAL = new ArrayList();
myAL.Add("ab");
myAL.Add("cd");
myAL.Add("efg");
// 克隆動態(tài)數(shù)組到新的動態(tài)數(shù)組里.
ArrayList newArray = (ArrayList)myAL.Clone();
foreach (Object obj in newArray)
{
Console.Write("{0} ",obj);
}運(yùn)行結(jié)果:
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);
}運(yùn)行結(jié)果:
ab cd efg
4:ArrayList.RemoveAt(Int32) 使用舉例
ArrayList myAL = new ArrayList();
myAL.Add("ab");
myAL.Add("cd");
myAL.Add("efg");
myAL.RemoveAt(1);//根據(jù)下標(biāo)號刪除元素
foreach (Object obj in myAL)
{
Console.Write("{0} ", obj);
}運(yùn)行結(jié)果:
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);//根據(jù)下標(biāo)范圍刪除元素
foreach (Object obj in myAL)
{
Console.Write("{0} ", obj);
}運(yùn)行結(jié)果:
ab nopq
6:ArrayList.Reverse() 使用舉例
ArrayList myAL = new ArrayList();
myAL.Add("ab");
myAL.Add("cd");
myAL.Add("efg");
myAL.Reverse();//反轉(zhuǎn)所有元素
foreach (Object obj in myAL)
{
Console.Write("{0} ", obj);
}運(yùn)行結(jié)果:
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);
}運(yùn)行結(jié)果:
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);
}運(yùn)行結(jié)果:
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);運(yùn)行結(jié)果:
是否包含nopq = true
到此這篇關(guān)于C#中ArrayList 類的使用詳解的文章就介紹到這了,更多相關(guān)C# ArrayList 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 輕松學(xué)習(xí)C#的ArrayList類
- 詳解c#中Array,ArrayList與List<T>的區(qū)別、共性與相互轉(zhuǎn)換
- C# ArrayList、HashSet、HashTable、List、Dictionary的區(qū)別詳解
- C#入門教程之集合ArrayList用法詳解
- C#中數(shù)組、ArrayList、List、Dictionary的用法與區(qū)別淺析(存取數(shù)據(jù))
- C# 中 Array和 ArrayList詳解及區(qū)別
- C#中數(shù)組、ArrayList和List三者的區(qū)別詳解
- C#中數(shù)組Array,ArrayList,泛型List詳細(xì)對比
相關(guān)文章
詳解C#編程中異常的創(chuàng)建和引發(fā)以及異常處理
這篇文章主要介紹了C#編程中異常的創(chuàng)建和引發(fā)以及異常處理,文中介紹了Catch塊和Finally塊等基本的異常處理要點(diǎn),需要的朋友可以參考下2016-02-02
C#中Timer實(shí)現(xiàn)Tick使用精度的問題
這篇文章主要介紹了C#中Timer實(shí)現(xiàn)Tick使用精度的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-08-08
C#自定義鼠標(biāo)拖拽Drag&Drop效果之基本原理及基本實(shí)現(xiàn)代碼
拖拽效果無論是在系統(tǒng)上、應(yīng)用上、還是在網(wǎng)頁上,拖拽隨處可見,下面通過本文介紹下C#自定義鼠標(biāo)拖拽Drag&Drop效果之基本原理及基本實(shí)現(xiàn)代碼,需要的朋友可以參考下2022-04-04
通過C#編寫一個簡易的Windows截屏增強(qiáng)工具
在使用?Windows?系統(tǒng)的截屏快捷鍵?PrintScreen?截屏?xí)r,如果需要把截屏保存到文件,需要先粘貼到畫圖工具然后另存為文件。所以本文用C#編寫了一個簡易的Windows截屏增強(qiáng)工具,需要的可以參考一下2022-05-05
c#中Empty()和DefalutIfEmpty()用法分析
這篇文章主要介紹了c#中Empty()和DefalutIfEmpty()用法,以實(shí)例形式分析了針對不同情況下Empty()和DefalutIfEmpty()用法區(qū)別,需要的朋友可以參考下2014-11-11

