IEnumerable provides only minimal "iterable" functionality. You can traverse the sequence, but that's about it. This has disadvantages
-->> for example, it is very inefficient to count elements using IEnumerable, or to get the nth element -->> but it has advantages too -->> for example, an IEnumerable could be an endless sequence, like the sequence of primes.IList is an interface which abstracts list functionality (count, add, remove, indexer access) away from the various concrete classes such as List, BindingList, ObservableCollection, etc.