天天看點

C#基礎入門 九

C#基礎入門 九

集合

  • 對于很多應用程式,需要建立和管理相關對象組,有兩種方式可以将對象分組,一是建立對象數組,如
object[] obj=new object[3]{1,2.33,"string"};
foreach(object o in obj)
{
	Console.WriteLine(o.Tostring());
	//output:1 2.33 string
}
           
  • 但是這樣實作有一個缺點,數組的初始化必須要固定數量,即數組的長度一定是常量。是以需要集合。
  • 建立和管理相關對象組的第二種方式就是建立對象集合。集合提供一種靈活的處理方式,與數組不同,處理的對象組可根據程式更改的需要動态的增長和收縮,對于某些集合,您可以為放入該集合的任何對象配置設定一個“鍵”,以便使用該鍵快速檢索對象。
  • 集合是類,是以必須聲明新集合後,才能向該集合中添加元素。
  • 集合分為兩種類型:非泛型集合和泛型集合
    • 使用非泛型集合需要引入:System.Collections命名空間
    • 使用泛型集合需要引入:System.Collections.Generic命名空間
  • System.Collections命名空間下的集合類
    C#基礎入門 九
  • System.Collections.Generic命名空間下的集合類(圖15)
    C#基礎入門 九

Dictionary

  • Dictionary<TKey,TValue>稱為字典類,表示鍵和值的集合,其中TKey表示字典中的類型,TValue表示字典中的值類型,Dictionary類實作了ICollection、IEnumerable、IDictionary接口,定義如下:Dictionary<string,int> dic =new Dictionary<string,int>();
  • Dictionary裡面的每一個元素都是一個鍵值對(由二個元素組成:鍵和值) ,鍵必須是唯一的,而值不需要唯一的 ,鍵和值都可以是任何類型(比如:string, int, 自定義類型,等等) ;通過一個鍵讀取一個值的時間是接近O(1) ,鍵值對之間的偏序可以不定義。
  • Dictionary類成員介紹:(圖16)
    C#基礎入門 九
  • Dictionary具體用法
public static void Main(string[] args)
        {
            Dictionary<string, int> dic = new Dictionary<string, int>();
            dic.Add("zxh",21);
            Dictionary<string, string> dic1 = new Dictionary<string, string>();
            dic1.Add("張三", "李四");
            int n;
            bool b=dic.TryGetValue("zxh", out n);
            Console.WriteLine(n);
            // bool b1 = dic.Remove("zxh");
            // Console.WriteLine(b1);
            //周遊key
            foreach (string key in dic.Keys)
            {
                Console.WriteLine("Key = {0}", key);
            }
            //周遊value
            foreach (int value in dic.Values)
            {
                Console.WriteLine("value = {0}", value);
            }
            //周遊字典
            foreach (KeyValuePair<string, int> kvp in dic)
            {
                Console.WriteLine("Key = {0}, Value = {1}", kvp.Key, kvp.Value);
            }
        }
           
  • 運作如下圖所示(圖17)
    C#基礎入門 九