1. 數組概述 數組是包含若干相同類型的變量,這些變量都可以通過索引進行訪問。數組中的變量稱為數組的元素,數組能夠容納元素的數量稱為數組的長度。數組中的每個元素都具有唯一的索引與其對應。 2. 一維數組的聲明和使用 2.1 聲明: 基本語法: [csharp] Type[]arrayName; 示例代碼:聲明一個int類型的一維數組arr [csharp] int[] arr; arr=new int[5]{1,2,3,4,5}; //初始化其中的元素分別為1,2,3,4,5 2.2 使用: 示例代碼: [csharp] static void Main(string[] args) { int[] arr ={1,2,3,4,5}; //定義一個一維數組,並為其賦值 foreach (int n in arr) //使用foreach語句循環遍歷一維數組中的元素 Console.WriteLine("{0}", n + ""); Console.ReadLine(); } 運行結果: 3. 二維數組的聲明和使用 3.1聲明: 基本語法: [csharp] type[ ,] arrayName; 示例代碼:聲明一個兩行兩列的二維數組並初始化 [csharp] int[ , ]arr=new int[2,2]{{1,2},{3,4}}; 3.2使用 3.2.1靜態二維數組 示例代碼: [csharp] static void Main(string[] args) { int[,] arr = new int[2, 2] {{1,2},{3,4}}; //自定義一個二維數組 Console.Write("數組的行數為:"); Console.Write(arr.Rank); //獲得二維數組的行數 Console.Write("\n"); Console.Write("數組的列數為:"); Console.Write(arr.GetUpperBound(arr.Rank-1)+1); //獲得數組的列數 Console.Write("\n"); for (int i = 0; i < arr.Rank;i++) //循環輸出二維數組中的每個元素 { string str = ""; for (int j = 0; j <arr.GetUpperBound(arr.Rank - 1) + 1; j++) { str = str +Convert.ToString(arr[i, j]) + " "; } Console.Write(str); Console.Write("\n"); } Console.ReadLine(); } 運行結果: 3.2.2動態二維數組 示例代碼: [csharp] static void Main(string[] args) { Console.Write("請輸入動態數組的行數:"); int row = Convert.ToInt32(Console.ReadLine());//定義動態數組的行數 Console.Write("請輸入動態數組的列數:"); int col = Convert.ToInt32(Console.ReadLine());//定義動態數組的列數 int[,] arr = new int[row,col]; //根據定義的行數和列數定義動態數組 Console.WriteLine("結果:"); for (int i = 0; i< row; i++) { for (int j = 0; j < col; j++) { Console.Write(i+j .ToString()+" "); //輸出動態數組中的元素 } Console.WriteLine(); Console.ReadLine(); } } 運行結果: 4. 數組的基本操作 4.1如何遍歷數組 使用foreach語句可以實現數組的遍歷功能。在2.1的示例代碼中已有涉及,此處就不舉例了。 4.2 添加/刪除數組元素 可以利用數組的索引號對數組元素進行刪除,但是這種方法不能夠真正地實現對數組元素的刪除,一般不推薦使用。等以後學習了ArrayList類後,可以使用它來實現數組的刪除。 4.3 對數組進行排序(以後會是單獨的一章,詳細解釋) 4.3.1 遍歷排序法:如冒泡法、直接插入法和選擇排序法等。 4.3.2 Array類的Sort和Reverse排序法 4.4數組的合並和拆分 5. ArrayList類 ArrayList類相當於一種高級的動態數組,它是Array類的升級版。位於System.Collections命名空間下,可以動態添加和刪除元素。 5.1 聲明 方式一:ArrayList List= new ArrayList(); 示例代碼: [csharp] ArrayList list=new ArrayList(); //聲明一個ArrayList對象 for (int i=0;i <10;i ++) //給其添加10個int類型的元素值 list .Add (i); 方式二:ArrayList List=new ArrayList(arrayName); 示例代碼: [csharp] int[] arr = new int[] {1,2,3,4,5,6,7,8,9 }; //聲明一維數組 ArrayList list=new ArrayList (arr ); //將一維數組中元素添加到已聲明的ArrayList對象中 方式三:ArrayList List=new ArrayList(n); 示例代碼: [csharp] ArrayList list=new ArrayList (10); //聲明一個ArrayList對象 for (int i=0;i <List.Count;i++) //給其添加10個int類型的元素值 list .Add (i); 5.2使用 5.2.1ArrayList元素的添加 可以使用ArrayList類提供的Add方法和Insert方法。 示例代碼: [csharp] //使用Add方法(將對象添加到ArrayList集合的結尾處) int[] arr = new int[] { 1,2, 3, 4, 5, 6 }; ArrayList list = newArrayList(arr); //使用聲明的一維數組實例化一個ArrayList對象 list.Add(7); //為ArrayList對象添加對象 //使用Insert方法(將對象添加到ArrayList集合的指定索引處) int[] arr2 = new int[] { 1,2, 3, 4, 5, 6 }; ArrayList list2 = newArrayList(arr2); //使用聲明的一維數組實例化一個ArrayList對象 list.Insert(3,7); //在ArrayList集合的指定位置添加一個元素 5.2.2 ArrayList元素的刪除 可以使用ArrayList類提供的Clear方法、Remove方法、RemoveAt方法和RemoveRange方法。這幾種方法的使用和5.2.1中元素的添加方法類似,只需要更換方法名即可,所以不再舉例了。 其中,Clear方法用來從ArrayList中移除所有元素;Remove方法從中移除特定對象的第一個匹配項;RemoveAt方法用來移除指定索引處的元素;RemoveRangge方法用來移除一定范圍的元素。大家可視情況而選擇使用。 5.2.3 ArrayList元素的查找 元素的查找也是類似,可使用Contains方法、Indexof方法和LastIndexOf方法。 6. Hashtable(哈希表) 哈希表表示鍵/值對的集合,這些鍵/值對根據鍵的哈希代碼進行組織。 6.1 Hashtable元素的添加 [csharp] Hashtable hashtable=newHashtable(); hashtable.Add(“Sex”,”男”); 6.2 Hashtable元素的刪除 [csharp] hashtable.Remove(“Sex”); 6.3 Hashtable元素的遍歷 與數組的遍歷相似,都可以使用foreach語句,但是由於Hashtable元素是一個鍵/值對,因此需要使用DictionaryEntry類型來進行遍歷。 示例代碼: [csharp] static void Main(string[] args) { Hashtable hashtable = new Hashtable(); //實例化Hashtable對象 hashtable.Add("StuID","110"); //向Hashtable對象添加對象 hashtable.Add("name","Tom"); hashtable.Add("Sex", "男"); Console.WriteLine("\t鍵\t值"); foreach (DictionaryEntry dicEntry inhashtable) //遍歷Hashtable中的元素 { Console.WriteLine("\t"+dicEntry.Key +"\t"+dicEntry .Value ); } Console.WriteLine(); Console.ReadLine(); } 運行結果: