2017-01-21 3 views
0

List에 대해 IEnumerable을 사용하면 어떤 점이 장점입니까?C에서 List에 대해 IEnumerable 사용

List<Employee> employees = new List<Employee>() { new Employee(...),...} 
foreach (Employee emp in employees) 
{ 
    Console.WriteLine(emp.Name); 
} 

또는 IEnumerable을 같이 내가 사용할 수 있습니다 : 다음 사용

IEnumerable<Employee> employees = new List<Employee>() { new Employee(...),...} 

나는 각 직원을 반복하려는 경우 예를 들어, 내가 사용하거나 할 수있다,하는 Employee 클래스 및 직원 개체의 컬렉션을 가지고 foreach 루프.

둘 다 같은 목표를 달성합니다. 그렇다면 왜 우리는 때때로 List에 IEnumerable을 사용하는 것을 선호합니까?

답변

1

목록은 인덱스를 통해 값에 액세스 할 수있는보다 복잡한 구조이며 삽입, 추가, 제거 및 기타 방법을 지원합니다. IEnumerable은 List 클래스가 구현하는 매우 기본적인 인터페이스입니다 (처음 몇 번 구현하는 것이 까다로울 수 있지만). 즉, IEnumerable은 List가 제공하는 추가 기능이 필요하지 않을 때 사용됩니다. 그렇지 않으면 List가 IEnumerable과 "is a"관계를 가지고 있기 때문에 C#이 제공하는 반공 변성의 규칙 때문에 List를 사용할 수 있습니다. 당신이 할 필요가 같은 같은 간단한 반복자를 사용하면 결론적으로

https://msdn.microsoft.com/en-us/library/system.collections.ienumerable(v=vs.110).aspx

: IEnumerable의 구현에 또한

https://msdn.microsoft.com/en-us/library/dd799517.aspx

: 여기에 몇 가지 문서입니다 결과 IEnumerable을 순환하는 foreach 루프 또는 LINQ를 사용하는 것은 IEnumerable 형식이 크고 가볍습니다. 더 많은 기능이 필요하다면 목록은 IEnumerable이고 그 다음에는 IEnumerable에 필요한 기능을 기반으로 빌드됩니다.

관련 문제