C#의 튜플(Tuple)은 서로 다른 자료형의 여러 값을 하나의 객체로 묶어 관리할 수 있는 편리한 데이터 구조입니다. 튜플을 생성하면 각 요소에 Item1, Item2, Item3과 같은 읽기 전용 속성이 순서대로 자동으로 부여됩니다.
따라서 튜플의 두 번째 요소를 가져오려면 Item2 속성을 사용하면 됩니다. 마찬가지로 첫 번째 요소는 Item1, 세 번째 요소는 Item3으로 접근할 수 있습니다. 아래 예제를 통해 실제 사용 방법을 살펴보겠습니다.
예제 1 – 두 개의 튜플 비교 및 요소 접근
using System;
public class Demo {
public static void Main(String[] args) {
var tuple1 = Tuple.Create(75, 200, 500, 700, 100, 1200, 1500);
var tuple2 = Tuple.Create(75, 200, 500, 700, 100, 1200, 1500);
Console.WriteLine("Is Tuple1 equal to Tuple2? = "+tuple1.Equals(tuple2));
Console.WriteLine("HashCode of Tuple1 = "+tuple1.GetHashCode());
Console.WriteLine("HashCode of Tuple2 = "+tuple2.GetHashCode());
Console.WriteLine("Tuple1 Item 1st = "+tuple1.Item1);
Console.WriteLine("Tuple2 Item 1st = "+tuple2.Item1);
Console.WriteLine("Tuple1 Item 2nd = "+tuple1.Item2);
Console.WriteLine("Tuple2 Item 2nd = "+tuple2.Item2);
Console.WriteLine("Tuple1 Item 4th = "+tuple1.Item4);
Console.WriteLine("Tuple2 Item 4th = "+tuple4.Item4);
Console.WriteLine("Tuple1 Item 5th = "+tuple1.Item5);
Console.WriteLine("Tuple2 Item 5th = "+tuple2.Item5);
}
}
출력 결과
Is Tuple1 equal to Tuple2? = True HashCode of Tuple1 = 3231587 HashCode of Tuple2 = 3231587 Tuple1 Item 1st = 75 Tuple2 Item 1st = 75 Tuple1 Item 2nd = 200 Tuple2 Item 2nd = 200 Tuple1 Item 4th = 700 Tuple2 Item 4th = 700 Tuple1 Item 5th = 100 Tuple2 Item 5th = 100
코드 설명
Tuple.Create() 메서드를 사용하면 인자로 전달한 값들로 구성된 7개짜리 튜플(7-Tuple)이 생성됩니다. 위 예제에서 두 튜플은 동일한 값으로 생성되었기 때문에 Equals() 비교 결과가 True이며, 해시 코드도 같게 출력됩니다.
주목할 부분은 tuple1.Item2와 tuple2.Item2입니다. 두 경우 모두 200이 출력되는데, 이것이 바로 각 튜플의 두 번째 요소입니다. 이처럼 Item2 속성만으로 간단하게 두 번째 값을 조회할 수 있습니다.
예제 2 – 8개 요소를 가진 튜플에서 요소 접근하기
using System;
public class Demo {
public static void Main(String[] args) {
var tuple = Tuple.Create(1200, 1500, 2200, 2700, 3100, 3500, 4500, 5500);
Console.WriteLine("HashCode of Tuple = "+tuple.GetHashCode());
Console.WriteLine("Tuple Item 1st = "+tuple.Item1);
Console.WriteLine("Tuple Item 2nd = "+tuple.Item2);
Console.WriteLine("Tuple Item 3rd = "+tuple.Item3);
Console.WriteLine("Tuple Item 4th = "+tuple.Item4);
Console.WriteLine("Tuple Item 5th = "+tuple.Item5);
Console.WriteLine("Tuple Item 6th = "+tuple.Item6);
Console.WriteLine("Tuple Item 7th = "+tuple.Item7);
}
}
출력 결과
HashCode of Tuple = 49989024 Tuple Item 1st = 1200 Tuple Item 2nd = 1500 Tuple Item 3rd = 2200 Tuple Item 4th = 2700 Tuple Item 5th = 3100 Tuple Item 6th = 3500 Tuple Item 7th = 4500
참고 사항
위 예제처럼 8개의 요소를 가진 튜플을 생성하면 여덟 번째 요소(5500)는 중첩된 내부 튜플의 Rest.Item1 속성을 통해 접근해야 합니다. 즉, tuple.Rest.Item1을 사용하면 됩니다. 반면 첫 번째부터 일곱 번째 요소까지는 Item1부터 Item7 속성으로 직접 접근할 수 있습니다.
정리하면, C#에서 튜플의 두 번째 요소를 얻는 방법은 매우 간단합니다. 튜플 변수 뒤에 점(.)을 붙이고 Item2 속성을 호출하기만 하면 됩니다. 이 방식은 튜플의 크기나 요소의 자료형과 무관하게 항상 동일하게 적용됩니다.