我有一个Dictionary<int, object> 在int是的属性obj.有没有更好的数据结构?我觉得使用属性是关键是多余的.
这Dictionary<int, obj>是容器类中的一个字段,允许obj根据intid号随机索引值.容器类中的简化(无异常处理)索引器如下所示:
obj this[int id]
{
get{ return this.myDictionary[id];}
}
Run Code Online (Sandbox Code Playgroud)
myDictionary前面Dictionary<int, obj>拿着物体在哪里.
这可能是快速随机访问的典型方式,但我想获得第二意见.
框架中没有具体的类来执行此操作.有一个抽象的,KeyedCollection.您必须从该类派生自己的类并实现GetKeyForItem()方法.这很简单,只需返回要索引的属性的值即可.
这就是你需要做的,但要注意ChangeItemKey().当您用作键的属性更改值时,您必须执行一些有意义的操作.如果你确保属性是不可变的(只有一个getter),那就足够了.但是当你不这样做时很尴尬,对象本身现在需要意识到它存储在你的集合中.如果你没有做任何事情(调用ChangeItemKey),对象会在集合中丢失,你找不到它.非常接近泄漏.
请注意Dictionary <>如何通过分别指定键值和对象来解决此问题.您可能仍然无法找到该对象,但至少它不会因设计而丢失.
| 归档时间: |
|
| 查看次数: |
1927 次 |
| 最近记录: |