Нельзя указать ограничение типа, например where T : []
, и нет универсального интерфейса для свойства индексатора. List
и DataRowCollection
оба - IEnumerable
и ICollection
, но я предполагаю, что это вас не сильно выиграет. Поэтому нет, невозможно указать что-то вроде «Тип должен быть индексируемой коллекцией».
Обновление : я только что увидел, что DataRowCollection
имеет свойство List
, которое возвращает коллекцию как ArrayList
, что является IList
. Итак, если вы хотите написать метод расширения, вы можете настроить его на IList
Обновление 2 : еще один вариант: вы можете нацелиться на IEnumerable
и использовать Linq ElementAt()
. Не уверен, что он будет использовать свойство индекса для DataRowCollection
.