Convert from List into IEnumerable format

后端 未结 6 1076
情歌与酒
情歌与酒 2020-12-07 23:47
IEnumerable _Book_IE
List _Book_List

How shall I do in order to convert _Book_List into IEnumerable

相关标签:
6条回答
  • 2020-12-08 00:13

    As far as I know List<T> implements IEnumerable<T>. It means that you do not have to convert or cast anything.

    0 讨论(0)
  • 2020-12-08 00:14

    You don't need to convert it. List<T> implements the IEnumerable<T> interface so it is already an enumerable.

    This means that it is perfectly fine to have the following:

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

    as well as:

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

    which could be invoked:

    List<Book> books = FetchEmFromSomewhere();    
    ProcessBooks(books);
    
    0 讨论(0)
  • 2020-12-08 00:28

    You need to

    using System.Linq;
    

    to use IEnumerable options at your List.

    0 讨论(0)
  • 2020-12-08 00:29

    Why not use a Single liner ...

    IEnumerable<Book> _Book_IE= _Book_List as IEnumerable<Book>;
    
    0 讨论(0)
  • 2020-12-08 00:31
    IEnumerable<Book> _Book_IE;
    List<Book> _Book_List;
    

    If it's the generic variant:

    _Book_IE = _Book_List;
    

    If you want to convert to the non-generic one:

    IEnumerable ie = (IEnumerable)_Book_List;
    
    0 讨论(0)
  • 2020-12-08 00:38

    You can use the extension method AsEnumerable in Assembly System.Core and System.Linq namespace :

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

    This will, as said on this MSDN link change the type of the List in compile-time. This will give you the benefits also to only enumerate your collection we needed (see MSDN example for this).

    0 讨论(0)
提交回复
热议问题