Преобразование из списка в формат IEnumerable



IEnumerable<Book> _Book_IE
List<Book> _Book_List


как я должен сделать, чтобы преобразовать _Book_List на ?

600   6  

6 ответов:

вам не нужно конвертировать его. List<T> осуществляет IEnumerable<T> интерфейс это уже перечисли.

это означает, что совершенно нормально иметь следующее:

public IEnumerable<Book> GetBooks()
{
    List<Book> books = FetchEmFromSomewhere();    
    return books;
}

а также:

public void ProcessBooks(IEnumerable<Book> books)
{
    // do something with those books
}

, который может быть вызван:

List<Book> books = FetchEmFromSomewhere();    
ProcessBooks(books);

вы можете использовать метод расширения AsEnumerable в системе сборки.Ядро и система.Пространство имен Linq:

List<Book> list = new List<Book>();
return list.AsEnumerable();

Это будет, как сказано на это ссылка MSDN изменить тип списка во время компиляции. Это даст вам преимущества также только перечислить вашу коллекцию нам нужно (см. Пример MSDN для этого).

почему бы не использовать один вкладыш ...

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

насколько я знаю List<T> осуществляет IEnumerable<T>. Это означает, что вам не нужно ничего конвертировать или бросать.

IEnumerable<Book> _Book_IE;
List<Book> _Book_List;

Если это общий вариант:

_Book_IE = _Book_List;

Если вы хотите конвертировать в неродовой:

IEnumerable ie = (IEnumerable)_Book_List;

вам нужно

using System.Linq;

использовать IEnumerable опции на List.

Comments

    Ничего не найдено.