C# ArrayList的用法
System.Collections.ArrayList類是一個特殊的陣列。通過新增和刪除元素,就可以動態改變陣列的長度。
一、優點
1. 支援自動改變大小的功能
2. 可以靈活的插入元素
3. 可以靈活的刪除元素
4. 可以靈活訪問元素
二、侷限性
跟一般的陣列比起來,速度上差些
三、新增元素
1.public virtual int Add(object value);
將物件新增到ArrayList的結尾處
ArrayList aList=new ArrayList();
aList.Add("a");
aList.Add("b");
aList.Add("c");
aList.Add("d");
aList.Add("e");
內容為abcde
2.public virtual void Insert(int index,object value);
將元素插入ArrayList的指定索引處
ArrayList aList=new ArrayList();
aList.Add("a");
aList.Add("b");
aList.Add("c");
aList.Add("d");
aList.Add("e");
aList.Insert(0,"aa");
結果為aaabcde
3.public virtual void InsertRange(int index,違規廣告ectionc);
將集合中的某個元素插入ArrayList的指定索引處
ArrayList aList=new ArrayList();
aList.Add("a");
aList.Add("b");
aList.Add("c");
aList.Add("d");
aList.Add("e");
ArrayList list2=new ArrayList();
list2.Add("tt");
list2.Add("ttt");
aList.InsertRange(2,list2);
結果為abtttttcde
四、刪除
a)public virtual void Remove(object obj);
從ArrayList中移除特定物件的第一個匹配項,注意是第一個
ArrayList aList=new ArrayList();
aList.Add("a");
aList.Add("b");
aList.Add("c");
aList.Add("d");
aList.Add("e");
aList.Remove("a");
結果為bcde
2.public virtual void RemoveAt(intindex);
移除ArrayList的指定索引處的元素
aList.Add("a");
aList.Add("b");
aList.Add("c");
aList.Add("d");
aList.Add("e");
aList.RemoveAt(0);
結果為bcde
3.public virtual void RemoveRange(int index,int count);
從ArrayList中移除一定範圍的元素。Index表示索引,count表示從索引處開始的數目
aList.Add("a");
aList.Add("b");
aList.Add("c");
aList.Add("d");
aList.Add("e");
aList.RemoveRange(1,3);
結果為ae
4.public virtual void Clear();
從ArrayList中移除所有元素。
五、排序
a)public virtual void Sort();
對ArrayList或它的一部分中的元素進行排序。
ArrayListaList=newArrayList();
aList.Add("e");
aList.Add("a");
aList.Add("b");
aList.Add("c");
aList.Add("d");
DropDownList1.DataSource=aList;//DropDown ListDropDownList1;
DropDownList1.DataBind();
結果為eabcd
ArrayList aList=new ArrayList();
aList.Add("a");
aList.Add("b");
aList.Add("c");
aList.Add("d");
aList.Add("e");
aList.Sort();//排序
DropDownList1.DataSource=aList;//DropDownListDropDownList1;
DropDownList1.DataBind();
結果為abcde
b)public virtual void Reverse();
將ArrayList或它的一部分中元素的順序反轉。
ArrayList aList=new ArrayList();
aList.Add("a");
aList.Add("b");
aList.Add("c");
aList.Add("d");
aList.Add("e");
aList.Reverse();//反轉
DropDownList1.DataSource=aList;//DropDownListDropDownList1;
DropDownList1.DataBind();
結果為edcba
六、查詢
a)public virtual int IndexOf(object);
b)public virtual int IndexOf(object,int);
c)public virtual int IndexOf(object,int,int);
返回ArrayList或它的一部分中某個值的第一個匹配項的從零開始的索引。沒找到返回-1。
ArrayList aList=new ArrayList();
aList.Add("a");
aList.Add("b");
aList.Add("c");
aList.Add("d");
aList.Add("e");
intnIndex=aList.IndexOf(“a”);//1
nIndex=aList.IndexOf(“p”);//沒找到,-1
d)public virtual int LastIndexOf(object);
e)public virtual int LastIndexOf(object,int);
f)public virtual int LastIndexOf(object,int,int);
返回ArrayList或它的一部分中某個值的最後一個匹配項的從零開始的索引。
ArrayList aList=new ArrayList();
aList.Add("a");
aList.Add("b");
aList.Add("a");//同0
aList.Add("d");
aList.Add("e");
intnIndex=aList.LastIndexOf("a");//值為2而不是0
g)public virtual bool Contains(objectitem);
確定某個元素是否在ArrayList中。包含返回true,否則返回false
七、獲取陣列中的元素
下面以整數為例,給出獲取某個元素的值的方法
ArrayList aList=new ArrayList();
for(int i=0;i<10;i++)
aList.Add(i);
for(i=0;i<10;i++)
Textbox1.text+=(int)aList[i]+" ";//獲取的方式基本與一般的陣列相同,使用下標的方式進行
結果為:0 1 2 3 4 5 6 7 8 9
八、其他
1.public virtual intCapacity{get;set;}
獲取或設定ArrayList可包含的元素數。
2.public virtual intCount{get;}
獲取ArrayList中實際包含的元素數。
Capacity是ArrayList可以儲存的元素數。Count是ArrayList中實際包含的元素數。Capacity總是大於或等於Count。如果在新增元素時,Count超過Capacity,則該列表的容量會通過自動重新分配內部陣列加倍。
如果Capacity的值顯式設定,則內部陣列也需要重新分配以容納指定的容量。如果Capacity被顯式設定為0,則公共語言執行庫將其設定為預設容量。預設容量為16。
在呼叫Clear後,Count為0,而此時Capacity切是預設容量16,而不是0
3.public virtual void TrimToSize();
將容量設定為ArrayList中元素的實際數量。
如果不向列表中新增新元素,則此方法可用於最小化列表的記憶體系統開銷。
若要完全清除列表中的所有元素,請在呼叫TrimToSize之前呼叫Clear方法。截去空ArrayList會將ArrayList的容量設定為預設容量,而不是零。
ArrayList aList=new ArrayList();
aList.Add("a");
aList.Add("b");
aList.Add("c");
aList.Add("d");
aList.Add("e");//Count=5,Capacity=16,
aList.TrimToSize();//Count=Capacity=5;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-662162/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- c#之arraylist類的成員C#
- C# peek()的用法C#
- ARRAYLIST VECTOR LINKEDLIST 區別與用法
- C#裡List的用法C#
- C#中Enum的用法C#
- C# ExpandoObject用法C#Object
- C# List用法C#
- 【C#】as關鍵字的用法C#
- C#中substring ()的用法C#
- C#中Attributes的用法C#
- C# WebSocketSharp 框架的用法C#Web框架
- C#中?和??及?:的用法C#
- 【C#】-Dictionary的詳細用法C#
- c# array_arraylist_continue_break_foreachC#
- C# OpenFileDialog用法C#
- C# List 用法list<>C#
- C# SendMessage用法C#
- C#中dynamic的正確用法C#
- C# 之 static的用法詳解C#
- C#中SqlParameter的作用與用法C#SQL
- c# 中常用的對集合的用法C#
- 【java】【集合】去除ArrayList中的元素、ArrayList巢狀ArrayListJava巢狀
- c#之arraylist動態陣列小記(1)C#陣列
- C#中陣列Array、ArrayList、泛型List<T>的比較C#陣列泛型
- C#中 as is 用法筆記C#筆記
- C# StringBuilder用法C#UI
- C#教程之介面用法C#
- C# SetCursorPos用法C#
- C# List用法詳解C#
- 【C#】反射的用法及效率對比C#反射
- [C#] ??雙問號的意思及用法C#
- 【轉】C#中dynamic的正確用法C#
- C#中File 類的用法 轉載C#
- ArrayList動態陣列物件 c# 1231陣列物件C#
- c#中Array,ArrayList 與List<T>的區別、共性與轉換C#
- 關於C#中async/await的用法C#AI
- C# 中的 Mutex(互斥體)基礎用法C#Mutex
- C# List常用函式用法C#函式