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 に答える