一. ArrayList相關方法的學習
利用enumerator來訪問數組:
ArrayList list = new ArrayList(1);
for (int i = 0; i < 10; i++)
list.Add(i);
IEnumerator etr = list.GetEnumerator();//枚舉
while (etr.MoveNext())
Console.Write(etr.Current + " ");
運行結果:
對了,要想在C#中利用ArrayList必須在系統命名空間中加入一個引用,否則會出現錯誤的。using System.Collections;
下面看一些動態數組的常用方法:
ArrayList list = new ArrayList(5);
//構造一個動態數組
// list.Clear();//清楚數組中所有的元素
Console.WriteLine();
Console.WriteLine("there are {0} elements in the list", list.Count);
ArrayList shuzu = new ArrayList(5);
shuzu.Add("仙劍一");
shuzu.Add("亮劍");
shuzu.Add("bianceng.");
shuzu.Add("國家寶藏");
shuzu.Add("陸小鳳");
for (int x = 0; x <= shuzu.Count - 1; x++)
Console.WriteLine(shuzu[x]);
Console.WriteLine("now reverse it\n");
shuzu.Reverse();
Console.WriteLine("after reverser\n");
Console.WriteLine();
for (int x = 0; x <= shuzu.Count - 1; x++)
Console.WriteLine(shuzu[x]);
運行結果:
現在比較下array 和arraylist:Array 提供 ArrayList 所不具有的某些靈活性。例如:
可以設置 Array 的下限,但 ArrayList 的下限始終為零。
Array 可以具有多個維度,而 ArrayList 始終只是一維的;特定類型(不包括 Object)的 Array 的性能比 ArrayList 好,這是因為 ArrayList 的元素屬於 Object 類型,所以在存儲或檢索值類型時通常發生裝箱和取消裝箱。
Array 位於 System 命名空間中;ArrayList 位於 System. Collections 命名空間中
至於ArrayList從Object類繼承下來的父類方法我在這裡就不多介紹了,
那都是些基本的方法。下面看些ArrayList使用的方法。
Console.WriteLine();
for (int x = 0; x <= shuzu.Count - 1; x++)
Console.WriteLine(shuzu[x]);
Console.WriteLine("there are {0} elements in the list", shuzu.Count);
Console.WriteLine("now add a new elements ");
shuzu.Add("new element");//增加一個元素
Console.WriteLine("there are {0} elements in the list", shuzu.Count);
shuzu.Remove("亮劍");//刪除特點元素
Console.WriteLine("there are {0} elements in the list", shuzu.Count);
shuzu.RemoveAt(2);//刪除指定位置的元素
Console.WriteLine("there are {0} elements in the list", shuzu.Count);
shuzu.Insert(1, "系統級");//在數組的制定位置插入一個元素
Console.WriteLine("there are {0} elements in the list", shuzu.Count);
int countElement = shuzu.Count;
Console.WriteLine(shuzu.GetType());//輸出數組的類型
int index = shuzu.IndexOf("系統級");//獲取某一元素的索引號
Console.WriteLine();
ArrayList anothe = new ArrayList(shuzu);//創建一個數組
for (int b = 0; b < anothe.Count; b++)
Console.WriteLine(anothe[b]);
Console.WriteLine(shuzu.Contains("國家寶藏"));//判定數組中是否存在某一元素
Console.WriteLine(shuzu.LastIndexOf("國家寶藏"));
list.Add("B");
list.Add("G");
list.Add("J");
list.Add("S");
list.Add("M");
string[] array1 = new string[list.Count];
//創建一個i和shuzu元素個數大小一樣大的字符串數組
list.CopyTo(array1, 0);
//將shuzu中從第一個元素開始以後的元素復制到array
object[] array2 = list.ToArray();//利用這個方法創建數組
Console.WriteLine("Array 1:");
foreach (string s in array2)
{
Console.Write("{0}", s);
}
Console.WriteLine();
foreach (string s in array1)
{
Console.Write("{0}", s);
}
Console.WriteLine();
for (int i = 0; i < list.Count; i++)
Console.Write(list[i]);
以上程序運行的結果是: