Итератор роли и .ToList ():
List<IDic> casted = input.Cast<IDic>().ToList()
выполнит трюк.
Первоначально я сказал, что ковариация будет работать, но, как справедливо указал Джон; нет, это не будет!
И изначально я тоже тупо остановился на ToList()
вызове