从列表转换为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
选项。