前言:
NameValueCollection v.s Dictionary
使用起來很像的東西 其實差很大...
NameValueCollection 和 Dictionary<> 比較下表
NameValueCollection | Dictionary<,> | |
1. | Key和Value 都是String型態 | 可用泛型來指定Key和Value型態 |
2. | 可對於未指定的Key取值 | 不能對於未指定的Key取值 (會報錯誤) |
3. | 可對於重複鍵加值 | 不可於重複鍵加值 |
差別的程式碼在下面和大家介紹
第一點
-
NameValueCollection contatier = new NameValueCollection(); contatier.Add("key1", "key1"); contatier.Add("key2", "key2");
NameValueCollection 使用方式 ,只需直接New一個NameValueCollection即可使用
-
Dictionary<string, string> dict = new Dictionary<string, string>(); dict.Add("key1", "key1"); dict.Add("key2", "key2");
使用Dictionary需要指定Key和Value的型態
第二點
-
雖然在下面的contaier沒有給Key為dict值 但再取值時不會報錯 而是會給一個[空字串]
NameValueCollection contatier = new NameValueCollection(); contatier.Add("key1", "key1"); contatier.Add("key2", "key2"); Console.WriteLine(contatier["dict"]);
-
下面dict 字典物件 沒有給key為dict付值 再取值時會出錯
Dictionary<string, string> dict = new Dictionary<string, string>(); dict.Add("key1", "key1"); dict.Add("key2", "key2"); Console.WriteLine(dict["dict"]);
第三點
-
NameValueCollection可以使用重複Key來付值 如以下程式碼 重複add [Key]為key1 可正常運作
NameValueCollection contatier = new NameValueCollection(); contatier.Add("key1", "key1"); contatier.Add("key2", "key2"); contatier.Add("key1", "test1");
-
下面dict 字典物件使用如重複Key來付值會出錯 如重複add [Key]為key1 就會報錯
Dictionary<string, string> dict = new Dictionary<string, string>(); dict.Add("key1", "key1"); dict.Add("key2", "key2"); dict.Add("key1", "test1");
如果本文對您幫助很大,可街口支付斗內鼓勵石頭^^