[c#] 목록에서 IEnumerable 형식으로 변환

IEnumerable<Book> _Book_IE
List<Book> _Book_List

어떻게 변환하기 위해 어떻게해야 _Book_List으로 IEnumerable포맷?



답변

변환 할 필요가 없습니다. 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);


답변

어셈블리 System.Core 및 System.Linq 네임 스페이스에서 확장 메서드 AsEnumerable을 사용할 수 있습니다.

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.


답변