Вы можете использовать метод расширения AsEnumerable в сборочном пространстве имен System.Core и System.Linq:
List<Book> list = new List<Book>();
return list.AsEnumerable();
Это, как сказано в этой ссылке MSDN, изменит тип списка во время компиляции. Это также даст вам возможность перечислять только необходимую нам коллекцию (см. Пример MSDN).
Ответ 3
Почему бы не использовать Single liner...
IEnumerable<Book> _Book_IE= _Book_List as IEnumerable<Book>;
Ответ 4
Насколько я знаю, List<T> реализует IEnumerable<T>. Это означает, что вам не нужно ничего переводить или делать что-либо.