C# LINQ의 Reverse() 메서드를 사용하면 시퀀스에 포함된 요소들의 순서를 간단하게 반전시킬 수 있습니다. 이 글에서는 문자 배열을 예제로 Queryable.Reverse() 메서드를 활용해 요소 순서를 뒤집는 과정을 단계별로 살펴보겠습니다.
1. 문자 배열 설정하기
먼저 반전시킬 문자 배열을 선언하고, foreach 문으로 화면에 출력해 보겠습니다.
char[] ch = { 'd', 'r', 'i', 'v', 'e' };
Console.Write("String = ");
foreach(char arr in ch)
Console.Write(arr);
2. Reverse() 메서드로 순서 반전하기
AsQueryable() 메서드로 배열을 IQueryable 형태로 변환한 뒤, Reverse() 메서드를 호출하면 시퀀스 내 요소들의 순서가 반전됩니다.
IQueryable<char> res = ch.AsQueryable().Reverse();
3. 전체 예제 코드
지금까지의 내용을 하나로 합친 완성된 코드는 다음과 같습니다.
using System;
using System.Linq;
using System.Collections.Generic;
public class Demo {
public static void Main() {
char[] ch = { 'd', 'r', 'i', 'v', 'e' };
Console.Write("String = ");
foreach(char arr in ch)
Console.Write(arr);
IQueryable<char> res = ch.AsQueryable().Reverse();
Console.Write("\nReversed = ");
foreach (char c in res)
Console.Write(c);
}
}
4. 실행 결과
String = drive Reversed = evird
실행 결과를 확인해 보면, 원래 문자열 "drive"가 Reverse() 메서드를 통해 "evird"로 순서가 반전되어 출력된 것을 볼 수 있습니다.
참고 사항
Reverse()는 지연 실행(lazy execution) 방식으로 동작하여, 실제로 결과를 열거할 때 순서가 반전됩니다. 또한 AsQueryable()을 사용하면 IQueryable 공급자(예: Entity Framework) 환경에서 쿼리로 변환될 수 있으며, 단순한 메모리 내 컬렉션이라면 Enumerable.Reverse()를 직접 사용해도 동일한 결과를 얻을 수 있습니다.