Convert from List into IEnumerable format

C#asp.net MvcC# 4.0Ienumerable

C# Problem Overview


IEnumerable<Book> _Book_IE
List<Book> _Book_List

How shall I do in order to convert _Book_List into IEnumerable format?

C# Solutions


Solution 1 - C#

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);

Solution 2 - C#

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).

Solution 3 - C#

Why not use a Single liner ...

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

Solution 4 - C#

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

Solution 5 - C#

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;

Solution 6 - C#

You need to

using System.Linq;

to use IEnumerable options at your List.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionWhat&#39;sUPView Question on Stackoverflow
Solution 1 - C#Darin DimitrovView Answer on Stackoverflow
Solution 2 - C#cdieView Answer on Stackoverflow
Solution 3 - C#Rahul ChowdhuryView Answer on Stackoverflow
Solution 4 - C#ElalferView Answer on Stackoverflow
Solution 5 - C#FemarefView Answer on Stackoverflow
Solution 6 - C#JuryView Answer on Stackoverflow