3

我正在考虑使用 OrderedDictionary。作为一个键,我想使用一个长值(id),该值将是一个自定义对象。

我使用 OrderedDictionary 是因为我想通过它的 Id 获取一个对象,并且我想通过它的“集合”索引获取一个对象。

我想像这样使用 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?。这会出错吗?

4

1 回答 1

2

更新,因为我从来没有注意到这OrderedDictionary部分!索引器有一个覆盖,要么object通过键检索值,要么int通过索引检索值。如果您希望通过键检索索引,则需要将索引转换为对象,例如

_dict[(object)_currentIndex] as MyObject;
于 2010-05-18T09:19:47.977 回答