2015-01-09 1 views
6

В чем разница между выбором IEnumerable<T> против IReadOnlyList<T> как тип возвращаемого параметра или входного параметра типа?IEnumerable <T> против IReadOnlyList <T>

IEnumerable<T> обеспечивает .Count и .ElementAt, который является то, что экспонируется IReadOnlyList<T>

ответ

11

IEnumerable<T> представляет собой однонаправленный курсор над некоторыми данными. Вы можете перейти от начала до конца коллекции, глядя на один элемент за раз.

IReadOnlyList<T> представляет собой читаемую коллекцию случайного доступа.

IEnumerable<T> более общий, поскольку он может представлять элементы, созданные на лету, данные, поступающие по сети, строки из базы данных и т. Д. IReadOnlyList<T>, с другой стороны, в основном представляет только коллекции в памяти.

Если вам нужно только посмотреть на каждый пункт один раз, в порядке, то IEnumerable<T> - лучший выбор - это более общий.

Я бы рекомендовал на самом деле взглянуть на стандартную библиотеку шаблонов C++ - их обсуждение различных типов итераторов на самом деле очень хорошо отображает ваш вопрос.

 Смежные вопросы

  • Нет связанных вопросов^_^