【c#】NameValueCollection 和 Dictionary 差异??

前言:

NameValueCollection v.s Dictionary

使用起来很像的东西 其实差很大...

NameValueCollection 和 Dictionary<> 比较下表

NameValueCollectionDictionary<,>Key和Value 都是String型态可用泛型来指定Key和Value型态可对于未指定的Key取值不能对于未指定的Key取值 (会报错误)可对于重複键Add值不可于重複键Add值

(一)

NameValueCollection的Key和Value 只吃 string

NameValueCollection contatier = new NameValueCollection();contatier.Add("key1", "key1");contatier.Add("key2", "key2");

使用Dictionary可用泛型指定Key和Value的型态

Dictionary<string, string> dict = new Dictionary<string, string>();dict.Add("key1", "key1");dict.Add("key2", "key2");   

(二)

Dictionary字典物件 没有给key为dict付值 取值时会出错

Dictionary<string, string> dict = new Dictionary<string, string>();dict.Add("key1", "key1");dict.Add("key2", "key2");Console.WriteLine(dict["dict"]);

虽然在下面的contaier没有给Key为dict值 但再取值时不会报错 而是会给一个**[空字串]**

NameValueCollection contatier = new NameValueCollection();contatier.Add("key1", "key1");contatier.Add("key2", "key2");Console.WriteLine(contatier["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");  

其中第二点和第三点差别须注意


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章