Section 20.11: IEnumerable<> 인스턴스로의 배열

모든 배열들은 non-generic 버전의 IList 인터페이스를 (더불어 상위 인터페이스인 non-generic 버전의 ICollectionIEnumerable 를 포함하여) 구현 (implement) 하게 되어 있다.

더욱 중요한 점은, 1차원 배열들의 경우 해당 배열의 데이터 타입에 대하여 IList<>IReadOnlyList<> generic 인터페이스를 (더불어 이들의 상위 인터페이스를 포함하여) 구현 (implement) 하게 되어 있다는 점이다. 이것이 의미하는 바는 이러한 배열들이 generic 한 열거형 (enumerable) 타입으로 취급될 수 있다는 것으로, 배열이 아닌 다른 형태로 변환시킬 필요 없이 다양한 함수들의 파라미터로 바로 사용될 수 있게 된다.

int[] arr1 = { 3, 5, 7 }; IEnumerable<int> enumerableIntegers = arr1; //배열이 IEnumerable<T> 를 구현 (implement) 하므로 변환이 허용된다 List<int> listOfIntegers = new List<int>(); listOfIntegers.AddRange(arr1); // List 의 내용물을 채우기 위해 배열에 대한 reference 를 사용할 수 있다.

위 코드 실행 시, listOfIntegers3, 5, 그리고 7 의 값을 포함하는 List<int> 를 갖게 될 것이다. IEnumerable<> 로의 변환 지원을 통해, 배열 내용을 LINQ 를 사용하여 조회할 수도 있다.

다음 예제를 확인한다.

arr1.Select(i => 10 * i)
본 문서는 C# Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

[출처] https://books.goalkicker.com/CSharpBook/

반응형

+ Recent posts