IEnumerable
- интерфейс, а List
- класс, реализующий данный интерфейс. Любой класс может реализовывать несколько интерфейсов. Правильнее объявлять как есть - т.е. List
, а там где, где нужен конкретный интерфейс/класс - просто делать каст. Обычно не требуется, т.к. IDE/компилятор еще стадии написания/компиляции кода проверяет наличие нужного интерфейса в передаваемом объекте. Соответственно, если ваш конструктор просит IEnumerable
, но не разрешает List
- проверяйте точнее, что именно нужно конструктору, т.к. если все правильно делать - то List
он должен принимать.