Существующие ответы уже показывают, как добавить свои собственные индексаторы.
Возможно, вы захотите взглянуть на некоторые из существующих коллекций на основе ключей, например, SortedList<,>
, которые действуют аналогично Dictionary<,>
, но допускают использование индексатора ключа и позиции.
Также - вы должны быть в состоянии использовать наследование для большинства вещей такого типа - например, наследование от Collection<>
или List<>
. Обратите внимание, что если ваша коллекция реализует IList
/ IList<T>
, я не рекомендую следующее (что я иногда вижу):
public SomeType this[int someId] {...}
Дело в том, что люди ожидают, что целочисленный индексатор IList[<T>]
будет позиционным.