KeyValuePair与NameValueCollection

The*_*Man 11 .net c# collections

还有其他一些问题,比如KeyValuePair和IDictionary,但我觉得这个问题略有不同.

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

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

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

小智 13

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

NameValueCollection是包装在什么相当于一个IList<KeyValuePair<string,IList<string>>>(请注意,NameValueCollection早于仿制药) -经营喜欢Get(string)O(n)和物品可以通过索引和每个键映射到一个被提取或多个值(这不同于Dictionary<string,string>).

NameValueCollection文档中解释了原因:

此类可用于标题,查询字符串和表单数据.

较新的 "替换"数据结构与一些类似的行为NameValueCollectionLookup<string,string>.(但是,它不直接支持与作为消费者注释不可变的相同操作.)

快乐的编码.