C#에서 특정 형식을 IEnumerable에 해당하는 형식으로 캐스팅하려면 AsEnumerable() 메서드를 사용하면 됩니다. 이 메서드는 System.Linq 네임스페이스에 포함된 확장 메서드(Extension Method)로, 배열이나 컬렉션을 IEnumerable<T> 타입으로 변환해 LINQ 연산을 더 유연하게 활용할 수 있게 해줍니다.
예제 소개
이번 예제에서는 정수형 배열을 하나 선언하고, 각 요소에 값을 할당한 뒤 이를 IEnumerable로 변환하는 과정을 살펴보겠습니다.
먼저 크기가 10인 int 배열을 선언합니다.
int[] myArr = new int[10]; myArr[0] = 1; myArr[1] = 2; myArr[2] = 3; myArr[3] = 4; myArr[4] = 5;
그다음 AsEnumerable() 메서드를 호출하여 배열을 IEnumerable 형식으로 캐스팅합니다.
myArr.AsEnumerable();
전체 예제 코드
아래는 배열의 모든 요소에 값을 넣고, AsEnumerable()로 변환한 후 foreach 문으로 각 요소를 출력하는 완전한 예제입니다.
using System;
using System.Linq;
class Demo {
static void Main() {
int[] myArr = new int[10];
myArr[0] = 1;
myArr[1] = 2;
myArr[2] = 3;
myArr[3] = 4;
myArr[4] = 5;
myArr[5] = 6;
myArr[6] = 7;
myArr[7] = 8;
myArr[8] = 9;
myArr[9] = 10;
// AsEnumerable()로 IEnumerable 형식으로 변환
var a = myArr.AsEnumerable();
// 결과 출력
foreach (var item in a) {
Console.WriteLine(item);
}
}
}실행 결과
프로그램을 실행하면 배열에 저장된 값들이 순서대로 출력됩니다.
1 2 3 4 5 6 7 8 9 10
정리
AsEnumerable()은 원본 컬렉션을 복사하지 않고 동일한 데이터를 IEnumerable<T> 관점에서 바라보게 해주는 가벼운 변환 메서드입니다. 배열뿐만 아니라 List, Dictionary 등 다양한 컬렉션에 적용할 수 있으며, LINQ의 표준 쿼리 연산자를 활용할 때 유용하게 사용됩니다.