IEnumerable<Book> _Book_IE List<Book> _Book_List How shall I do in order to convert _Book_List into IEnumerable format?
IEnumerable<Book> _Book_IE List<Book> _Book_List How shall I do in order to convert _Book_List into IEnumerable format?
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); 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).
As far as I know List<T> implements IEnumerable<T>. It means that you do not have to convert or cast anything.
IEnumerable<IList<obj>> to an IEnumerable<IEnumerable<obj>> it gives a compiler error since the second does not inherit from the first one.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; I couldn't directly use IEnumerable because it was being used within another generic (function as it happens) and can't use abstract types for this purpose.
So I had to use List.
I was serialising and deserialising with JSON but that had to use IEnumerable for Newtonsoft.Json calls, otherwise it produces garbage. (see JSON.NET DeserializeObject to List of Objects).
But on the return function from the deserialiser, the variable of the IEnumerable can be returned by calling ToList() on the deserialised object.