Если посмотреть на определения трех (см ниже) вы увидите, что List
реализует Enumerable
и ICollection
и ICollection
орудия IEnumerable
.Более наглядно:
List
является КЛАСС который может хранить переменное количество элементов одного и того же типа, а также функциональные возможности, указанных двух других интерфейсов.
ICollection
- это интерфейс, который определяет общий способ управления коллекциями. ПРИМЕЧАНИЕ: это интерфейс и, следовательно, НЕ может быть создан.
IEnumerable
- это интерфейс, который указывает средство итерации по коллекции. ПРИМЕЧАНИЕ: это интерфейс и, следовательно, НЕ может быть создан.
List
Представляет строго типизированный список объектов, которые могут быть доступны по индексу. Предоставляет методы поиска, сортировки и управления списками.
public class List<T> : IList<T>, ICollection<T>,
IEnumerable<T>, IList, ICollection, IEnumerable
ICollection
Определяет методы для манипулирования обобщенных коллекций.
public interface ICollection<T> : IEnumerable<T>,
IEnumerable
IEnumerable
разоблачает нумератор, который поддерживает простую итерацию по коллекции указанного типа.
public interface IEnumerable<out T> : IEnumerable
См. Документацию. – SLaks
Зависит от того, что вы хотите сделать также со списком Дженерики - это отличный способ создать или убедиться, что что-то есть в списке типов типов, а также в коллекции, но если вы хотите перечислить что-то там, где вам нужно будет очень много создавать свои собственные enumerator (Counter) IEnumerable было бы хорошо .. но тогда есть также foreach, и для циклов это зависит только от того, что вы хотите делать, и от того, как быстро вы хотите, чтобы Nicholas опубликовал отличные ссылки, чтобы объяснить это лучше всего. –
MethodMan