All of these interfaces inherit from IEnumerable
, which you should make sure you understand. That interface basically lets you use the class in a foreach
statement (in C#).
ICollection
is the most basic of the interfaces you listed. It’s an enumerable interface that supports a Count and that’s about it.IList
is everything thatICollection
is, but it also supports adding and removing items, retrieving items by index, etc. It’s the most commonly-used interface for “lists of objects”, which is vague I know.IQueryable
is an enumerable interface that supports LINQ. You can always create anIQueryable
from anIList
and use LINQ to Objects, but you also findIQueryable
used for deferred execution of SQL statements in LINQ to SQL and LINQ to Entities.IDictionary
is a different animal in the sense that it is a mapping of unique keys to values. It is also enumerable in that you can enumerate the key/value pairs, but otherwise it serves a different purpose than the others you listed.
The MSDN documentation for each of these is decent, so I would start there in rounding out your understanding.