1. 程式人生 > >C#動態設定陣列長度

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)); //錯誤