我正在寻找能够满足这些条件的数据结构或几种组合:
我提出的三个解决方案是这样的,它们都只是.NET中内置集合的使用
构建我自己的哈希集,将更多的内部存储暴露给外部世界,然后是默认的HashSet<T
&gt;在.NET
使用Dictionary<int, T>
,因为迭代不必是有序的,但这是一个非常高性能的应用程序,每次我需要步骤时通过创建枚举器生成垃圾通过收藏担心我。担心垃圾不是我“编造”的,这是一个实时模拟和任何可能触发GC的垃圾,如果可以避免的话,基本上是一个非选择。
使用Dictionary<int, int>
和T[]
的组合,基本上将键+索引存储到字典中的数组中,并将元素存储在T[]
中。 / p>
答案 0 :(得分:3)
有一个通用KeyedCollection允许对象被int和key索引。密钥必须嵌入值中。
您可以使用for(int i ...)迭代它而不使用IEnumerable。