C#에서 특정 컬렉션을 IEnumerable 타입으로 변환해야 할 때 AsEnumerable() 메서드를 사용할 수 있습니다. 이 메서드는 System.Linq 네임스페이스에 포함된 확장 메서드(Extension Method)로, 배열이나 리스트 같은 다양한 컬렉션을 IEnumerable 인터페이스 기반으로 손쉽게 다룰 수 있게 해줍니다.
AsEnumerable() 메서드란?
AsEnumerable()은 호출된 객체를 그대로 IEnumerable<T> 타입으로 캐스팅하는 역할을 합니다. 실제로 데이터가 복사되는 것은 아니며, 단순히 타입 관점에서 IEnumerable로 접근할 수 있도록 해주는 가볍고 효율적인 방법입니다.
배열 선언하기
먼저 다음과 같이 정수형 배열을 하나 생성해 보겠습니다.
int[] arr = new int[5]; arr[0] = 10; arr[1] = 20; arr[2] = 30; arr[3] = 40; arr[4] = 50;
IEnumerable로 변환하기
이제 AsEnumerable() 메서드를 호출하여 배열의 IEnumerable 버전을 가져옵니다.
var res = arr.AsEnumerable();
전체 예제 코드
지금까지 설명한 내용을 모두 담은 완전한 C# 프로그램입니다.
using System;
using System.Linq;
class Demo {
static void Main() {
int[] arr = new int[5];
arr[0] = 10;
arr[1] = 20;
arr[2] = 30;
arr[3] = 40;
arr[4] = 50;
var res = arr.AsEnumerable();
foreach (var ele in res) {
Console.WriteLine(ele);
}
}
}실행 결과
10 20 30 40 50
마무리
AsEnumerable()은 LINQ 쿼리 작성 시 데이터 소스를 IEnumerable로 명확히 하고 싶거나, 구체적인 컬렉션 타입 대신 인터페이스 기반으로 데이터를 처리하고자 할 때 유용하게 활용됩니다. 데이터 복사 없이 타입만 변환되기 때문에 성능 부담 없이 안심하고 사용할 수 있습니다.