IEnumerable<Book> _Book_IE
List<Book> _Book_List
如何将_Book_List
转换为IEnumerable
格式?
答案 0 :(得分:126)
您无需转换它。 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);
答案 1 :(得分:39)
您可以在Assembly System.Core和System.Linq命名空间中使用扩展方法AsEnumerable:
List<Book> list = new List<Book>();
return list.AsEnumerable();
如this MSDN link所述,这将在编译时更改List的类型。 这也将为您提供仅列举我们所需的集合的好处(请参阅MSDN示例)。
答案 2 :(得分:12)
为什么不使用单一班轮......
IEnumerable<Book> _Book_IE= _Book_List as IEnumerable<Book>;
答案 3 :(得分:11)
据我所知List<T>
实现了IEnumerable<T>
。这意味着您无需转换或投射任何内容。
答案 4 :(得分:3)
IEnumerable<Book> _Book_IE;
List<Book> _Book_List;
如果是通用变体:
_Book_IE = _Book_List;
如果您想转换为非通用的:
IEnumerable ie = (IEnumerable)_Book_List;
答案 5 :(得分:0)
你需要
using System.Linq;
在IEnumerable
使用List
选项。