Возможные дубликаты:
IList <int> vs List <int>
С# - Список <T> или IList <T>
В чем разница между List и IList, которая имеет лучшую производительность и когда использовать List over IList и наоборот?
Возможные дубликаты:
IList <int> vs List <int>
С# - Список <T> или IList <T>
В чем разница между List и IList, которая имеет лучшую производительность и когда использовать List over IList и наоборот?
Если вы публикуете свой класс через библиотеку, которую другие будут использовать, вы, как правило, хотите разоблачить ее через интерфейсы, а не конкретные реализации. Это поможет, если вы решите изменить реализацию своего класса позже, чтобы использовать другой конкретный класс. В этом случае пользователям вашей библиотеки не потребуется обновлять свой код, так как интерфейс не изменяется.
Если вы просто используете его внутренне, вам может быть не так много, и использование List может быть в порядке.
Для большей проверки этого
Список реализует интерфейс IList
IList - это интерфейс и не имеет никакой реализации, поэтому производительность IList зависит от класса, который он реализует
В списке С# есть конкретная реализация интерфейса IList. Список представляет собой реализацию интерфейса IList. Идея заключается в программировании против интерфейса, а не в реализации. Как правило, ваши методы должны принимать и возвращать интерфейсы для коллекций. Это оставляет вашу собственную реализацию и комнату ваших абонентов для принятия решения о фактической реализации по мере необходимости.
Преимущество использования интерфейса заключается в том, что вы получаете возможность реализовать свою функциональность или еще лучше, единственную функциональность, которая вам нужна. Итак, если требуется только итерация/перечисление, тогда нет необходимости в методах Sort, Add.
IList - это интерфейс - см. этот вопрос для получения дополнительной информации - List <T> или IList <T>
В чем разница между программированием и вами? Звучит странно? Это! Просто потому, что оба они не сопоставимы. Вы человек, а программирование - это навык, который у вас есть. Также многие люди могут обладать этим навыком.
Аналогично IList
- это интерфейс, который определяет некоторые возможности, которые любой класс может реализовать. List<T>
является одним из них. Поскольку в IList
нет реализации, нет никакого вопроса о сравнении производительности.