IEnumerable
- support the use of foreach
IQueryable : IEnumerable
- support LINQ operations
IEnumerable<out T> : IEnumerable
- IEnumerable for generics
ICollection<T> : IEnumerable<T>, IEnumerable
- defines methods to manipulate generic collections
IQueryable<out T> : IEnumerable<T>, IQueryable, IEnumerable
- support LINQ operations for generics
IList<T> : ICollection<T>, IEnumerable<T>, IEnumerable
- can be individually accessed by index
Note: ICollection belongs to System.Collections while ICollection<T> belongs to System.Collections.Generic