C#Ordered字典索引

时间:2010-05-18 09:14:05

标签: c# winforms ordereddictionary

我正在考虑使用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?。这会出错吗?

1 个答案:

答案 0 :(得分:2)

更新,因为我从未注意到OrderedDictionary部分!索引器具有覆盖object的覆盖,它将按键检索值,或int,它将按索引检索值。如果您希望通过键检索索引,则需要将索引转换为对象,例如

_dict[(object)_currentIndex] as MyObject;