IEnumerable<Book> _Book_IE
List<Book> _Book_List
Wie muss ich vorgehen, um _Book_List
in IEnumerable
-Format zu konvertieren?
Sie müssen es nicht konvertieren. List<T>
implementiert die IEnumerable<T>
- Schnittstelle, so dass es bereits eine Aufzählung ist.
Dies bedeutet, dass es vollkommen in Ordnung ist, Folgendes zu haben:
public IEnumerable<Book> GetBooks()
{
List<Book> books = FetchEmFromSomewhere();
return books;
}
ebenso gut wie:
public void ProcessBooks(IEnumerable<Book> books)
{
// do something with those books
}
die aufgerufen werden könnte:
List<Book> books = FetchEmFromSomewhere();
ProcessBooks(books);
Sie können die Erweiterungsmethode AsEnumerable im Namespace Assembly System.Core und System.Linq verwenden:
List<Book> list = new List<Book>();
return list.AsEnumerable();
Dies ändert, wie unter this MSDN link gesagt, den Typ der Liste in der Kompilierzeit .. __ Dies gibt Ihnen die Vorteile, auch nur Ihre Sammlung aufzulisten, die wir benötigten (siehe dazu das MSDN-Beispiel).
Warum nicht einen Single Liner verwenden ...
IEnumerable<Book> _Book_IE= _Book_List as IEnumerable<Book>;
Soweit ich weiß, implementiert List<T>
IEnumerable<T>
. Es bedeutet, dass Sie nichts konvertieren oder umwandeln müssen.
IEnumerable<Book> _Book_IE;
List<Book> _Book_List;
Wenn es sich um die generische Variante handelt:
_Book_IE = _Book_List;
Wenn Sie in eine nicht generische konvertieren möchten:
IEnumerable ie = (IEnumerable)_Book_List;
Du musst
using System.Linq;
verwenden Sie IEnumerable
-Optionen für Ihre List
.