加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – KeyValuePair vs. NameValueCollection

发布时间:2020-12-15 06:45:51 所属栏目:百科 来源:网络整理
导读:还有其他问题,如KeyValuePair vs IDictionary,但我觉得这一点略有不同. NameValueCollection获取字符串键和字符串值. KeyValuePair就像一本字典,你告诉它键和值的类型. 我不明白为什么NameValueCollection存在.用字符串类型初始化KeyValuePair似乎足够了.我
还有其他问题,如KeyValuePair vs IDictionary,但我觉得这一点略有不同.

NameValueCollection获取字符串键和字符串值.

KeyValuePair就像一本字典,你告诉它键和值的类型.

我不明白为什么NameValueCollection存在.用字符串类型初始化KeyValuePair似乎足够了.我还注意到,NameValueCollection有一些更多的方法可用,但是又是为什么不将这两个类合并成一个?

解决方法

KeyValuePair不像字典.它只是一个包含Key和Value的元组.

NameValueCollection包装在相当于IList< KeyValuePair< string,IList< string>>> (注意NameValueCollection预览泛型) – 像Get(string)这样的操作是O(n),并且可以通过索引获取项目,并且每个Key映射到一个或多个值(这与Dictionary< string,string>)不同.

这个原因在the NameValueCollection documentation中解释:

This class can be used for headers,query strings and form data.

对于NameValueCollection而言,具有类似行为的较新的“替换”数据结构为Lookup<string,string>.(但是,它不直接支持与不可替代的注释相同的操作.)

快乐编码.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读