C#에서 튜플(Tuple)은 서로 다른 타입의 여러 값을 하나의 단위로 묶어 관리할 수 있는 편리한 자료 구조입니다. 하지만 반복문 처리나 LINQ 연산 등 배열이 필요한 상황에서는 튜플의 요소들을 배열로 변환해야 할 때가 있습니다.
1. 튜플 생성하기
먼저 Tuple.Create 메서드를 사용하여 튜플을 생성합니다.
Tuple<int, int> t = Tuple.Create(99, 53);
위 코드는 두 개의 정수 값 99와 53을 담는 튜플을 만듭니다. 튜플의 각 요소는 Item1, Item2 속성으로 접근할 수 있습니다.
2. 튜플을 배열로 변환하기
튜플의 각 요소에 직접 접근하여 새로운 배열의 초기값으로 할당하면 변환이 완료됩니다.
int[] arr = new int[] { t.Item1, t.Item2 };이 방식은 튜플의 요소 개수가 고정되어 있을 때 가장 간단하고 직관적인 변환 방법입니다.
3. 전체 예제 코드
다음은 튜플을 배열로 변환하고, foreach 문을 사용하여 배열의 모든 요소를 출력하는 완전한 코드입니다.
using System;
using System.Linq;
using System.Collections.Generic;
namespace Demo {
public class Program {
public static void Main(string[] args) {
// 튜플 생성
Tuple<int, int> t = Tuple.Create(99, 53);
// 튜플을 배열로 변환
int[] arr = new int[] { t.Item1, t.Item2 };
// 배열 요소 출력
foreach (int val in arr) {
Console.WriteLine(val);
}
}
}
}실행 결과
99 53
정리
C#에서 튜플을 배열로 변환하는 핵심은 튜플의 Item1, Item2와 같은 속성에 접근하여 배열 초기화 구문에 직접 넣어주는 것입니다. 요소가 많아지면 코드가 길어질 수 있으므로, 그런 경우에는 LINQ의 리플렉션 기반 확장 메서드를 활용하는 방법도 고려할 수 있습니다. 다만 일반적으로 소수의 요소를 다룰 때는 위 예제처럼 명시적인 변환이 성능과 가독성 면에서 가장 좋습니다.