IEnumerable<Book> _Book_IE
List<Book> _Book_List
Comment dois-je faire pour convertir _Book_List
au format IEnumerable
?
Vous n'avez pas besoin de le convertir. List<T>
implémente l'interface IEnumerable<T>
de sorte qu'il est déjà énumérable.
Cela signifie qu'il est parfaitement correct d'avoir les éléments suivants:
public IEnumerable<Book> GetBooks()
{
List<Book> books = FetchEmFromSomewhere();
return books;
}
aussi bien que:
public void ProcessBooks(IEnumerable<Book> books)
{
// do something with those books
}
qui pourrait être invoqué:
List<Book> books = FetchEmFromSomewhere();
ProcessBooks(books);
Vous pouvez utiliser la méthode d'extension AsEnumerable dans l'espace de noms Assembly System.Core et System.Linq:
List<Book> list = new List<Book>();
return list.AsEnumerable();
Comme indiqué sur ce lien MSDN changera le type de la liste au moment de la compilation . Cela vous donnera également l’avantage d’énumérer votre collection dont nous avions besoin (voir exemple MSDN pour cela).
Pourquoi ne pas utiliser une seule doublure ...
IEnumerable<Book> _Book_IE= _Book_List as IEnumerable<Book>;
Autant que je sache, List<T>
implémente IEnumerable<T>
. Cela signifie que vous n'avez rien à convertir ou à jeter.
IEnumerable<Book> _Book_IE;
List<Book> _Book_List;
Si c'est la variante générique:
_Book_IE = _Book_List;
Si vous voulez convertir en non-générique:
IEnumerable ie = (IEnumerable)_Book_List;
Tu dois
using System.Linq;
utiliser les options IEnumerable
à votre List
.