Подтвердить что ты не робот

Что я должен использовать IEnumerable или IList?

Может ли кто-нибудь сказать мне, когда я должен использовать.

Например, я думаю, что я должен использовать IList, когда хочу получить доступ к .Count коллекции или отдельному элементу, исправить?

Спасибо.

4b9b3361

Ответ 1

В общем, вы должны попробовать и использовать наименее специфический тип, который соответствует вашей цели. IEnumerable менее специфичен, чем IList (IList реализует IEnumerable), поэтому, если вы не хотите что-то конкретное от IList (например,.Count, как вы предлагаете, или, возможно, Add, Delete и т.д.), Я бы использовал IEnumerable.

Включение приятных дополнений, которые вы получаете от IEnumerable, заключается в том, что вы можете написать методы итератора, чтобы вернуть этот тип (посмотрите "yield return" и методы iterator, если вы не знакомы с ними). Это позволяет писать очень эффективные "конвейеры" для ваших циклов.

Ответ 3

Вы должны использовать IList, когда вам нужен доступ по индексу к вашей коллекции, добавление и удаление элементов и т.д. и IEnumerable, когда вам нужно просто перечислить свою коллекцию.

Очень простой ответ, я могу расширить его, если вы опишете сценарий.