从列表转换为IEnumerable格式

IEnumerable<Book> _Book_IE List<Book> _Book_List 

我该怎么做才能将_Book_List转换成IEnumerable格式?

你不需要转换它。 List<T>实现了IEnumerable<T>接口,所以它已经是一个枚举类。

这意味着你可以很好地拥有以下内容:

 public IEnumerable<Book> GetBooks() { List<Book> books = FetchEmFromSomewhere(); return books; } 

以及:

 public void ProcessBooks(IEnumerable<Book> books) { // do something with those books } 

可以调用:

 List<Book> books = FetchEmFromSomewhere(); ProcessBooks(books); 

您可以在Assembly System.Core和System.Linq命名空间中使用扩展方法AsEnumerable:

 List<Book> list = new List<Book>(); return list.AsEnumerable(); 

正如在MSDN链接上所说,这将在编译时改变List的types。 这也将给你带来的好处也只是枚举我们需要的集合(见MSDN的例子)。

为什么不使用单线…

 IEnumerable<Book> _Book_IE= _Book_List as IEnumerable<Book>; 

据我所知List<T>实现IEnumerable<T> 。 这意味着你不必转换或施放任何东西。

 IEnumerable<Book> _Book_IE; List<Book> _Book_List; 

如果是通用变体:

 _Book_IE = _Book_List; 

如果你想转换为非通用的:

 IEnumerable ie = (IEnumerable)_Book_List; 

你需要

 using System.Linq; 

List使用IEnumerable选项。