Dictionary
類型:System.Collections.Generic.Dictionary
eg:Dictionary<string, int> illegParking = new Dictionary<string, int>();
鍵:inData.LOTID
值:inData.ISILLEGPARKING
1、判斷鍵存不存在。
dictionary中是不允許有重復項的,這樣才能按key索引到唯一一個value

if (illegParking.ContainsKey(inData.LOTID)) { illegParking[inData.LOTID] = inData.ISILLEGPARKING; } else { illegParking.Add(inData.LOTID, inData.ISILLEGPARKING); }
2、幾種遍歷方式:

Dictionary<string, int> list = new Dictionary<string, int>(); foreach (var item in list) { Console.WriteLine(item.Key + item.Value); } //通過鍵的集合取 foreach (string key in list.Keys) { Console.WriteLine(key + list[key]); } //直接取值 foreach (int val in list.Values) { Console.WriteLine(val); } //非要采用for的方法也可 Dictionary<string, int> list = new Dictionary<string, int>(); List<string> test = new List<string>(list.Keys); for (int i = 0; i < list.Count; i++) { Console.WriteLine(test[i] + list[test[i]]); }
3、涉及到移除某個鍵值的時候
不能在foreach循環里面移除,因為會導致錯誤:集合已修改;可能無法執行枚舉操作。可以改用for循環
//dicmodels是個dictionary
List<string> keys = new List<string>(dicModels.Keys); for (int i = keys.Count - 1; i >= 0; i--) { }
KeyValuePair 和 Dictionary 的關系和區別
結構:System.Collections.Generic.KeyValuePair<TKey, TValue>
1、KeyValuePair
a、KeyValuePair 是一個結構體(struct);
b、KeyValuePair 只包含一個Key、Value的鍵值對。
2、Dictionary
a、Dictionary 可以簡單的看作是KeyValuePair 的集合;
b、Dictionary 可以包含多個Key、Value的鍵值對。