IEnumerable vs ICollection vs IList?
Short answer: IEnumerable vs ICollection vs IList What interviewers test Execution pipeline understanding Abstraction knowledge Hierarchy IEnumerable └── ICollection └── IList IEnumerable<T> Read-only iteration Lazy execution IEnumerable<int> numbers = GetNumbers(); foreach (var n in numbers) { } ✅ Best for streaming, read-only, deferred execution ICollection<T> Adds count + add/remove ICollection<int> list = new List<int>();…
Explain a bit more
list.Add(1); ✅ When modifying collection without index access IList<T> Index-based access IList<int> list = new List<int>(); int first = list[0]; ✅ When order & index matter Interview rule of thumb “Expose the least powerful interface required.”
Example code
IEnumerable vs ICollection vs IList What interviewers test Execution pipeline understanding Abstraction knowledge Hierarchy IEnumerable └── ICollection └── IList IEnumerable<T> Read-only iteration Lazy execution IEnumerable<int> numbers = GetNumbers();
foreach (var n in numbers) { } ✅ Best for streaming, read-only, deferred execution ICollection<T> Adds count + add/remove ICollection<int> list = new List<int>();
list.Add(1); ✅ When modifying collection without index access IList<T> Index-based access IList<int> list = new List<int>();
int first = list[0]; ✅ When order & index matter Interview rule of thumb “Expose the least powerful interface required.”
Real-world example (ShopNest)
MNC rounds expect working code plus explanation. Walk through an example input from a ShopNest cart list, then discuss time and space.
Say this in the interview
- Define — one clear sentence (the short answer above).
- Example — relate it to a project like ShopNest or your real work.
- Trade-off — when you would not use it.
Share this Q&A
Share preview image: https://www.toolliyo.com/images/toolliyo-logo.png