C#動態設定陣列長度
轉自:http://www.cnblogs.com/ysz12300/p/5595907.html
名稱空間:using System.Collections;
ArrayList就是傳說中的動態陣列,它可以動態的增加和減少元素,另外它可以儲存任意個數和任意型別的元素。
屬性 Count屬性是目前ArrayList包含的元素的數量,這個屬性是隻讀的 Capacity屬性是目前ArrayList能夠包含的最大數量,可以手動的設定這個屬性,但是當設定為小於Count值的時候會引發一個異常。
方法 Add(v):新增一個元素(引數v,任何型別)到當前列表的末尾
AddRange方法用於新增一批元素到當前列表的末尾
Remove方法用於刪除一個元素,通過元素本身的引用來刪除
RemoveAt(i):方法用於刪除一個元素,通過索引值(引數i)來刪除
RemoveRange用於刪除一批元素,通過指定開始的索引和刪除的數量來刪除
Insert用於新增一個元素到指定位置,列表後面的元素依次往後移動
InsertRange用於從指定位置開始新增一批元素,列表後面的元素依次往後移動
Clear():方法用於清除現有所有的元素
Contains(v):方法用來查詢某個物件(引數v)在不在列表之中
ToArray(Type t):這個方法把ArrayList的元素Copy到一個新的陣列中,引數為Type型別
① 簡單使用
ArrayList list = new ArrayList(); // 宣告變數
list.Add(2);
list.Add("北京");
list.Add(new int[] { 2, 4, 6 });
list.Add("南京");
list.Add(3);
foreach (var p in list)
{ Console.Write(p.ToString() + " | "); // 輸出:2 | 北京 | System.Int32[] | 南京 | 3 | }
② ArrayList與陣列轉換
元素型別相同的轉換
ArrayList list = new ArrayList();
list.Add(1);
list.Add(2);
list.Add(3);
// 轉換方式1:ToArray()
int[] list2 = (int[])list.ToArray(typeof(int));
// 轉換方式2:CopyTo()
int[] list3 = new int[list.Count]; list.CopyTo(list3);
元素型別不同的轉換
ArrayList arr = new ArrayList(){ "北京", 1}; //往陣列中新增不同型別的元素
object[] arr2 = (object[])arr.ToArray(typeof(object)); //正確
string[] arr3 = (string[])arr.ToArray(typeof(string)); //錯誤