IEnumerable<Book> _Book_IE
List<Book> _Book_List
Come devo procedere per convertire _Book_List
nel formato IEnumerable
?Convertire da Elenco a formato IEnumerable
IEnumerable<Book> _Book_IE
List<Book> _Book_List
Come devo procedere per convertire _Book_List
nel formato IEnumerable
?Convertire da Elenco a formato IEnumerable
Non è necessario convertirlo. List<T>
implementa l'interfaccia IEnumerable<T>
quindi è già un enumerabile.
Questo significa che si può benissimo avere il seguente:
public IEnumerable<Book> GetBooks()
{
List<Book> books = FetchEmFromSomewhere();
return books;
}
così come:
public void ProcessBooks(IEnumerable<Book> books)
{
// do something with those books
}
che potrebbe essere invocato:
List<Book> books = FetchEmFromSomewhere();
ProcessBooks(books);
IEnumerable<Book> _Book_IE;
List<Book> _Book_List;
Se si tratta di la variante generica:
_Book_IE = _Book_List;
Se si desidera convertire il non generico uno:
IEnumerable ie = (IEnumerable)_Book_List;
Non hai bisogno del cast qui. –
Lo fai se vuoi i metodi specifici dall'interfaccia non generica, dato che alcuni di essi sono esplicitamente implementati, o sono sulla strada sbagliata qui? – Femaref
Per quanto ne so List<T>
implementa IEnumerable<T>
. Significa che non devi convertire o trasmettere nulla.
Dipende. Se si tenta di impostare un 'IEnumerable
perché non utilizzare un rivestimento singolo ...
IEnumerable<Book> _Book_IE= _Book_List as IEnumerable<Book>;
È possibile utilizzare il metodo di estensione AsEnumerable in Assembly System.Core e System.Linq namespace:
List<Book> list = new List<Book>();
return list.AsEnumerable();
Questo, come detto su this MSDN link cambia il tipo di Lista in fase di compilazione. Ciò ti darà anche i vantaggi di enumerare solo la tua raccolta di cui avevamo bisogno (vedi l'esempio MSDN per questo).
Sembra semplice ma rende il modo più semplice per convertire. Grazie –
È necessario
using System.Linq;
utilizzare IEnumerable
opzioni a vostra List
.
La convenzione di denominazione è infelicemente unica. –
Almeno lui ha una convenzione, eh? – Femaref