IEnumerable<T>
ICollection<T>
IList<T>

これって分けてる意味あるの?全部IListでよくない?