I like to keep things as general as possible to help with Mocking during testing later.
If you just repeat the assembly for the loop foreach, I would probably use IEnumerable<T>one since you don't need functionality IList<T>.
If you need functionality from IList<T>(e.g. iterate over a collection in a loop forusing an index) then use IList<T>.
, List<T>.