Я рассматриваю использование OrderedDictionary. В качестве ключа я хочу использовать длинное значение (id), и значение будет настраиваемым объектом.C# Указанный индекс словаря
Я использую OrderedDictionary, потому что хочу получить объект по его идентификатору, и я хочу получить объект по его индексу '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, но у меня также есть объект с идентификатором 10. Я установил Id как ключ.
Id of MyObject имеет тип long ?. Это не так?
Итак, когда я передаю _currentIndex, он видит, что это int, и поэтому он знает, как искать индекс, а не id, потому что идентификатор типа long ?. ? – Martijn
@Martin, извините, я никогда не замечал, что вы использовали 'OrderedDictionary', пожалуйста, см. Мой обновленный ответ. – James
Нет проблем. Но _currentIndex является int и используется для получения MyObject по индексу, а не по идентификатору. Я полагаю, мне не нужно бросать _currentIndex? Мне нужно только указать индексатор, когда я хочу MyObject по id, правильно? – Martijn