NameValueCollection vs Dictionary<string,string>[重复]。


可能的重复。 IDictionary<string, string> 或NameValueCollection。

有什么理由我应该使用Dictionary<string,string>而不是NameValueCollection?

(在C# .NET框架中)

方案1,使用NameValueCollection。

//enter values:
NameValueCollection nvc = new NameValueCollection()
{
  {"key1", "value1"},
  {"key2", "value2"},
  {"key3", "value3"}
};

// retrieve values:
foreach(string key in nvc.AllKeys)
{
  string value = nvc[key];
  // do something
}

选项2,使用Dictionary<string,string>… …

//enter values:
Dictionary<string, string> dict = new Dictionary<string, string>()
{
  {"key1", "value1"},
  {"key2", "value2"},
  {"key3", "value3"}
};

// retrieve values:
foreach (KeyValuePair<string, string> kvp in dict)
{
  string key = kvp.Key;
  string val = kvp.Value;
  // do something
}

对于这些用例,使用一种与另一种有什么优势吗?在性能、内存使用、排序顺序等方面有没有区别?

解决方案:

它们在语义上并不完全相同。语义上是不一样的。NameValueCollection 可以有重复的键,而 Dictionary 不能。

就个人而言,如果你没有重复的钥匙,那么我会坚持使用的是 Dictionary. 它更现代,使用 IEnumerable<> 这使得它很容易与 Linq 查询。你甚至可以创建一个 Dictionary 使用 Linq ToDictionary() 方法。

给TA打赏
共{{data.count}}人
人已打赏
未分类

npm不支持Node.js v14.0.0。

2022-9-13 13:23:43

未分类

Python - glob.glob with grep?

2022-9-13 13:34:39

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索