數組和集合(C#)

來源:互聯網
上載者:User
1. 數組概述

      數組是包含若干相同類型的變數,這些變數都可以通過索引進行訪問。數組中的變數稱為數組的元素,數組能夠容納元素的數量稱為數組的長度。數組中的每個元素都具有唯一的索引與其對應。

2.  一維數組的聲明和使用

 

       2.1 聲明:

       基本文法:

Type[]arrayName;

        範例程式碼:聲明一個int類型的一維數組arr

int[] arr;arr=new int[5]{1,2,3,4,5};  //初始化其中的元素分別為1,2,3,4,5
        2.2 使用:

             範例程式碼:                   

              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聲明:

       基本文法:           

type[ ,] arrayName;

       範例程式碼:聲明一個兩行兩列的二維數組並初始化           

  int[ , ]arr=new int[2,2]{{1,2},{3,4}};
       3.2使用               3.2.1靜態二維數組

               範例程式碼:              

        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動態二維數組

                    範例程式碼:                          

              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();

                              範例程式碼:          

            ArrayList list=new ArrayList();     //聲明一個ArrayList對象            for (int i=0;i <10;i ++)        //給其添加10個int類型的元素值                 list .Add (i);

             方式二:ArrayList List=new ArrayList(arrayName);

                             範例程式碼:               

               int[] arr = new int[] {1,2,3,4,5,6,7,8,9 };  //聲明一維數組               ArrayList list=new ArrayList (arr );    //將一維數組中元素添加到已聲明的ArrayList對象中

            方式三:ArrayList List=new ArrayList(n);

                            範例程式碼:               

            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方法。

                    範例程式碼:                        

                  //使用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元素的添加      
      Hashtable hashtable=newHashtable();       hashtable.Add(“Sex”,”男”);

        6.2 Hashtable元素的刪除   

        hashtable.Remove(“Sex”);
        6.3 Hashtable元素的遍曆

             與數組的遍曆相似,都可以使用foreach語句,但是由於Hashtable元素是一個鍵/值對,因此需要使用DictionaryEntry類型來進行遍曆。

              範例程式碼:     

    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();    }

      
運行結果:

                    

                     

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.