天天看點

C#.net技術内幕04-集合

 鋸齒數組:鋸齒數組就是數組的數組。例如:

Int[] a=new int[][]{

         New int[]{1,1,1};

          New int[]{23,12};

}

    2.Out與ref:将數組作為參數傳遞時,在調用函數之前不需要初始化out參數,但調用的函數必須在傳回前配置設定數組類型。而且,ref參數必須在函數調用之前配置設定。

    3. 枚舉數(enumerator):

    它是一個對象,可以通過它對集合項進行便利。枚舉數隻能讀取但不能改變集合的至。在執行個體化後,會被放在集合第一個元素之前。如果不調用movenexe就直接使用current通路的話會出錯。當枚舉數到達集合的末尾時,會停留在集合的最後一個元素後面,并傳回假。如果此時繼續使用current也會出錯。

    主要方法屬性:

current傳回集合中的目前對象;

Movenext将枚舉項後移一項;

Reset将枚舉數移到初始位置。

    4.幾種常用的集合:

   A.Arraylisy:使用add,remove等對元素進行操作。

View Code

   B.Stack:是一種後進先出結構。有push。Pop。peek三種方法。

C.Hashtable:這是一種鍵值對集合。該集合與前面的兩種集合不太一樣,我寫了段簡單代碼試了一下,發現了一下幾點:

首先他得到的并不是原來輸入的順序,而是進行散列後的值;

還有使用枚舉數的時候不再是Ienumerator,而是IdictionaryEnumerator;

最後,在使用枚舉數讀取值的時候不再是en.current,而是en.value。

D.Bitarray:一組真假值的集合。周遊的方法與arraylist以及stack相同。

要注意以下幾點:

首先bitarray執行個體化時必須聲明其長度;

其次,為其添加元素時用的方法是set;

最後,周遊時使用的枚舉數仍未Ienumerator。

     E.Sortedlist:這種用法和hashtable與arraylist有點像。

首先,添加元素用的是ADD方法,添加的是鍵值對;

其次,周遊時使用的枚舉數和Hahstable比較像。讀取的時候既可以根據鍵值讀取,也可以根據索引值讀取。

   F:queue:這是一種先進先出隊列結構。入隊方法為enqueque ,出隊方法為dequeque。枚舉數周遊方式使用Ienumerator,

<a></a>

protected static void queue()

        {

            Queue q = new Queue();

            for (int i = 0; i &lt; 5; i++)

            q.Enqueue(i.ToString());

            enumerator(q );

            q.Dequeue();

            enumerator(q);

        }

        protected static void enumerator(Queue q)//使用枚舉數周遊queue集合

            IEnumerator en = q.GetEnumerator();

            while (en.MoveNext()){

            Console.Write(en.Current);

            Console.WriteLine();}

繼續閱讀