【问题标题】:best key, value container where key is string and value is type [closed]最佳键、值容器,其中键是字符串,值是类型 [关闭]
【发布时间】:2014-02-18 21:20:31
【问题描述】:

什么是建议的键值容器,其中键始终是字符串类型,值是类型?容器不会超过 100 件物品。谢谢!

【问题讨论】:

  • Dictionary<string, Type> 有什么问题?
  • @TimSchmelter,与Max100ItemsDictionary<string, Type> 相比,它相形见绌。
  • 看来你引发了一些争论。那 100 是必须放在集合上的硬约束吗?
  • @ant 你想限制字典中项目的数量吗?你的意思是the value is a type自定义类型还是类型的类型
  • 我对限制计数不感兴趣。我的意思是类型的类型。

标签: c# .net containers


【解决方案1】:

您绝对应该使用标准的Dictionary<TKey, TValue>。您可以做出的唯一改进是基于您的不超过 100 个项目条件。

创建字典时使用new Dictionary<string, MyType>(int capacity)构造函数,它会阻止底层存储在添加新项时重新分配。

var dict = new Dictionary<string, MyType>(100);

【讨论】:

  • 指定容量不会限制项目的数量。
  • "Dictionary&lt;TKey, TValue&gt; 的容量是在需要调整大小之前可以添加到 Dictionary 的元素数。作为元素被添加到Dictionary&lt;TKey, TValue&gt;容量会根据需要通过重新分配内部数组自动增加。" msdn.microsoft.com/en-us/library/tk84bxf4(v=vs.110).aspx
  • @Selman22 但他并没有说这会限制计数。只防止重新分配。
  • @Blam 你说得对,对不起,我误解了这个问题
  • 说真的,你想多了。 OP 显然还没有遇到字典,并且不太关心分配。 :)
【解决方案2】:

除了标准的 .net dictionary 之外,我无法建议任何其他内容,如果您需要并发,还有一个 ConcurrentDictionary

【讨论】:

    猜你喜欢
    • 2012-09-04
    • 2017-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-16
    • 2021-08-01
    • 1970-01-01
    相关资源
    最近更新 更多