Может ли кто-нибудь сказать мне, когда я должен использовать.
Например, я думаю, что я должен использовать IList, когда хочу получить доступ к .Count коллекции или отдельному элементу, исправить?
Спасибо.
Ответ 1
В общем, вы должны попробовать и использовать наименее специфический тип, который соответствует вашей цели. IEnumerable менее специфичен, чем IList (IList реализует IEnumerable), поэтому, если вы не хотите что-то конкретное от IList (например,.Count, как вы предлагаете, или, возможно, Add, Delete и т.д.), Я бы использовал IEnumerable.
Включение приятных дополнений, которые вы получаете от IEnumerable, заключается в том, что вы можете написать методы итератора, чтобы вернуть этот тип (посмотрите "yield return" и методы iterator, если вы не знакомы с ними). Это позволяет писать очень эффективные "конвейеры" для ваших циклов.
Ответ 2
Вы используете IEnumerable, когда хотите перебирать элементы в коллекции.
IList - это когда вы хотите добавить, удалить и получить доступ к содержимому списка не в порядке.
Вы должны использовать IList, когда вам нужен доступ по индексу к вашей коллекции, добавление и удаление элементов и т.д. и IEnumerable, когда вам нужно просто перечислить свою коллекцию.
Очень простой ответ, я могу расширить его, если вы опишете сценарий.