Самый быстрый и самый грязный способ получить то, что вам нужно, это использовать класс ReadOnlyCollection<T>
.Это может быть представлено как IList<T>
реализация (так что вы получаете произвольный доступ по индексу, по желанию), но на самом деле только для чтения (так что методы, которые обычно изменяют коллекцию - например, Add
, Insert
и т. Д.). - вместо этого выбрасывать исключения).
Вы можете альтернативно спроектировать свой собственный интерфейс, что-то вроде IArray<T>
, который наследуется от IEnumerable<T>
, а также предоставляет this[int index]
getter *Только 1015 *.
Но тогда вам нужно написать обертку для этого, чтобы сделать ее вообще полезной.К сожалению, большая часть кода взаимодействует с интерфейсом IList<T>
только для произвольного доступа (не изменчивости), поэтому его использование, вероятно, станет для вас способом наименьшего сопротивления.