陳鍾誠

Version 1.0

C# 程式基礎:資料結構

容器函式庫

一般型別泛型型別說明
ArrayListList< >串列,以陣列實作的串列結構
QueueQueue< >佇列,先進先出的結構
StackStack< >堆疊,後進先出的結構
HashtableDictionary< >雜湊表格,快速用 key 查找 value
SortedListSortedList< >排序串列,使用排序與二分搜尋法的結構
ListDictionaryDictionary< >字典,快速用 key 查找 value
HybridDictionaryDictionary< >小集合採用 ListDictionary,集合變大時,會自動改用 Hashtable 的一種字典
OrderedDictionaryDictionary< >比SortedList類別多了一些功能的類別
SortedDictionarySortedDictionary< >鍵值一定是字串,用法跟 Hashtable 相似
NameValueCollectionDictionary< >NameValueCollection可以單一索引鍵對應多重值
DictionaryEntryKeyValPair< >字典中的一個項目,(Key, Value) 的結構
StringCollectionList<String>用法跟ArrayList相似
StringDictionaryDictionary<String>字串字典
  • 上層結構:Collection
  • 容器物件:Array, ArrayList, HashTable, SortedList
  • 位元容器:BitArray, BitVector32,
  • 泛型容器:NameValueCollection, Dictionary

容器的使用

範例:

using System;
using System.Collections;
using System.Collections.Generic;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            ArrayList a = new ArrayList();
            a.Add("John");
            a.Add(1);
            a.Add(3.1416);
            a.RemoveAt(2);

            Object[] array = a.ToArray();
            Console.WriteLine(array);

            List<Object> list = new List<Object>();
            list.Add("John");
            list.Add("Mary");
            list.Add("George");
            list.Add("3.14159");
            list.Add(3.14159);

            foreach (Object o in list)
                Console.Write(o+" ");
            Console.WriteLine();
            char c = 'A';
//            Console.Write("{0:X}", (int) c);

            Hashtable h = new Hashtable();
            h.Add("John", "0977332415");
            h.Add("Mary", "0977342415");
            h.Add("George", "0977372416");
            h.Add("Peter", "0977332425");
            String gtel = (String) h["George"];
            Console.WriteLine("George Tel : "+gtel);

            Dictionary<String, String> d = new Dictionary<string, string>();
            d.Add("John", "0977332415");
            d.Add("Mary", "0977342415");
            d.Add("George", "0977372416");
            d.Add("Peter", "0977332425");
            gtel = d["George"];
            Console.WriteLine("George Tel : " + gtel);

        }

    }
}