我正在考虑使用OrderedDictionary。作为一个键,我想使用一个long值(id),该值将是一个自定义对象。
我使用OrderedDictionary,因为我希望通过它的Id得到一个对象,我希望通过它的'collection'索引获得一个对象。
我想像这样使用OrderedDictionary:
public void AddObject(MyObject obj)
{
_dict.Add(obj.Id, obj); // dict is declared as OrderedDictionary _dict = new OrderedDictionary();
}
我的代码中的其他地方我有类似的东西:
public MyObject GetNextObject()
{
/* In my code keep track of the current index */
_currentIndex++;
// check _currentindex doesn't exceed the _questions bounds
return _dict[_currentIndex] as MyObject;
}
现在我的问题是。在最后一种方法中,我使用了一个索引。想象一下_currentIndex设置为10,但我还有一个id为10的对象。我已将Id设置为键。
MyObject的ID类型为long?。这会出错吗?
答案 0 :(得分:2)
更新,因为我从未注意到OrderedDictionary
部分!索引器具有覆盖object
的覆盖,它将按键检索值,或int
,它将按索引检索值。如果您希望通过键检索索引,则需要将索引转换为对象,例如
_dict[(object)_currentIndex] as MyObject;