What's the difference between IEnumerable
and Array
?
What's the difference between IList
and List
?
These seem to have the same function.
c++
What's the difference between IEnumerable
and Array
?
What's the difference between IList
and List
?
These seem to have the same function.
Best Solution
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.
Array is a fixed-size collection with random access (i.e. you can index into it).
List is a variable-size collection (i.e. you can add and remove elements) with random access.
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.