【发布时间】:2011-11-09 02:14:42
【问题描述】:
我需要在项目中使用字典,但我们知道它们只能使用键而不是索引来访问,我想使用索引来访问字典中的项目。所以我在网上摆弄了一下,发现了 OrderedDictionary,因为它们可以使用索引和键来访问,但是它们有一些 performance issue 并且因为我每天都在读/写字典,所以使用它不是一个好主意有序字典。
所以最后我在这里的问题是,是否有任何可用的替代方案可以为我提供字典的功能,我也可以使用索引访问它并且不会导致性能问题。
【问题讨论】:
-
你知道你可以在 Dictionary 上调用 ElementAt(index) 吗?
-
每分钟读/写字典是性能问题吗?
-
您想通过索引访问它们还是只遍历所有项目?否则,您可以使用 Values 属性。
-
@Dominik 不确定 ElementAt(index) 在这里有多大用处。这是一个 Linq 扩展,最适用于稳定序列,并且还需要从头开始迭代序列直到达到“索引”(也许对实际上可索引的底层序列进行了优化)。枚举字典不会给出插入顺序,而且字典会重新组织以保持负载因子,这意味着顺序不稳定。
-
@S Ali 一分钟一百次更新几乎没有。
标签: c# .net performance dictionary ordereddictionary