C#에서 튜플(Tuple)은 기본적으로 최대 7개의 요소까지만 직접 저장할 수 있습니다. 하지만 8번째 요소부터는 Rest 속성을 활용해 다른 튜플 객체를 중첩(nesting)하는 방식으로 더 많은 요소를 저장할 수 있습니다.
8개 요소를 가진 튜플의 구조는 다음과 같습니다.
Tuple<T1, T2, T3, T4, T5, T6, T7, TRest>
여기서 8번째 요소가 바로 Rest 속성을 통해 추가됩니다. Rest 속성에는 또 다른 튜플이 들어가므로, 이론상으로는 무한히 많은 요소를 중첩 구조로 표현할 수 있습니다.
예제 코드
아래 예제는 8개의 요소를 가진 튜플을 생성하고, 각 요소에 접근하는 방법을 보여줍니다. 특히 8번째 요소인 Item8은 myTuple.Rest를 통해 출력됩니다.
using System;
public class Program {
public static void Main() {
var myTuple = Tuple.Create(1, 2.5M, "Tom", "100", 5, 10.5M, "Henry", "100");
Console.WriteLine("Item1 : " + myTuple.Item1);
Console.WriteLine("Item2 : " + myTuple.Item2);
Console.WriteLine("Item3 : " + myTuple.Item3);
Console.WriteLine("Item4 : " + myTuple.Item4);
Console.WriteLine("Item5 : " + myTuple.Item5);
Console.WriteLine("Item6 : " + myTuple.Item6);
Console.WriteLine("Item7 : " + myTuple.Item7);
Console.WriteLine("Item8 : " + myTuple.Rest);
}
}실행 결과
Item1 : 1 Item2 : 2.5 Item3 : Tom Item4 : 100 Item5 : 5 Item6 : 10.5 Item7 : Henry Item8 : (100)
주요 포인트 정리
- 튜플은 기본적으로 Item1~Item7까지의 속성만 제공합니다.
- 8번째 요소는
Rest속성 안에 별도의 튜플 형태로 저장되며, 출력 시 괄호(100)와 같이 표시됩니다. - 9개 이상의 요소가 필요하다면
myTuple.Rest.Item1,myTuple.Rest.Item2처럼 중첩된 튜플 내부에 접근하면 됩니다. - 실무에서는 가독성을 위해 요소가 많은 경우 튜플 대신 클래스나 레코드(record) 사용을 고려하는 것이 좋습니다.