Why is it preferable to use IEnumerable <T> for list <T>
5 answers
The idea is to maximize the flexibility of your function. If you need a List <T>, then callers must have one to go through. If they do not have one convenient, they will have to create it, and it is expensive. If you require IEnumerable <T>, on the other hand, they can be passed to any collection.
The best place to learn about class heiarchy in .NET is MSDN.
+1