What are the differences between IEnumerable, IQueryable, and ICollection .NET collections interfaces? How do we choose which interface to use?