C#에서 Reverse() 메서드를 사용하면 배열이나 컬렉션에 저장된 요소들의 순서를 손쉽게 반전시킬 수 있습니다. 이 메서드는 System.Linq 네임스페이스에 포함되어 있으며, IQueryable 형식과 함께 사용하면 지연 실행 방식으로 뒤집힌 시퀀스를 반환합니다.
Reverse 메서드란?
Reverse()는 원본 데이터의 순서를 그대로 유지한 채, 요소들이 역순으로 정렬된 새로운 시퀀스를 생성합니다. 배열 자체를 직접 수정하는 Array.Reverse()와 달리, LINQ의 Reverse()는 원본을 변경하지 않고 결과만 반환한다는 점이 특징입니다.
예제: 문자 배열 뒤집기
먼저 다음과 같은 문자 배열이 있다고 가정해 보겠습니다.
char[] ch = { 't', 'i', 'm', 'e' };이 배열의 요소 순서를 뒤집으려면 AsQueryable() 메서드와 함께 Reverse()를 호출하면 됩니다.
ch.AsQueryable().Reverse();
AsQueryable()은 배열을 IQueryable<T> 형식으로 변환해 주며, 이후 Reverse()가 역순 시퀀스를 생성합니다.
전체 코드
아래는 위 내용을 모두 포함한 완성된 예제 코드입니다.
using System;
using System.Linq;
using System.Collections.Generic;
public class Demo {
public static void Main() {
char[] ch = { 't', 'i', 'm', 'e' };
Console.Write("String = ");
foreach(char arr in ch) {
Console.Write(arr);
}
IQueryable<char> res = ch.AsQueryable().Reverse();
Console.Write("\nReversed String = ");
foreach (char c in res) {
Console.Write(c);
}
}
}실행 결과
프로그램을 실행하면 다음과 같은 출력을 확인할 수 있습니다.
String = time Reversed String = emit
정리
이처럼 C# LINQ의 Reverse() 메서드를 활용하면 별도의 반복문이나 임시 변수 없이도 간결하게 배열 요소의 순서를 반전시킬 수 있습니다. 특히 AsQueryable()과 조합하면 쿼리 형태로 데이터를 다룰 때 유용하며, 원본 배열은 변경되지 않으므로 안전하게 사용할 수 있습니다.