IList<T> vs IEnumerable<T>. What is more efficient IList<T> or IEnumerable<T>
- by bigb
What is more efficient way to make methods return IList<T> or IEnumerable<T>?
IEnumerable<T> it is immutable collection but IList<T> mutable and contain a lot of useful methods and properties.
To cast IList<T> to IEnumerable<T> it is just reference copy:
IList<T> l = new List<T>();
IEnumerable<T> e = l;
To cast IEnumerable<T> to List<T> we need to iterate each element or to call ToList() method:
IEnumerable<T>.ToList();
or may pass IEnumerable<T> to List<T> constructor which doing the same iteration somewhere within its constructor.
List<T> l = new List<T>(e);
Which cases you think is more efficient? Which you prefer more in your practice?