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#基礎入門 九