The ICollection interface is the base interface for classes in the System.Collections namespace
IEnumerable, and its generic counterpart IEnumerable<T> are .NET interfaces for iterating (or enumerating) through a collection of items.
Simple properties better
"Secondly i did not use ienumerable because it is more generic than icollection and does not even have simple properties like count"
from question "Question regarding return types with collections"
"A better way to do that instead is taking in an ienumerable which is more generic than icollection since icollection implements ienumerable and simply checking it for null and else returning any from linq s operators"
from question "What is the type of Array"