C#에서 Tuple의 첫 번째 요소에 접근하려면 Item1 속성을 사용하면 됩니다. 튜플의 각 요소는 생성 시 지정된 순서에 따라 Item1, Item2, 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 5th = "+tuple1.Item5);
Console.WriteLine("Tuple2 Item 5th = "+tuple2.Item5);
Console.WriteLine("Tuple1 Item 1st = "+tuple1.Item1);
Console.WriteLine("Tuple2 Item 1st = "+tuple2.Item1);
}
}출력 결과
Is Tuple1 equal to Tuple2? = True HashCode of Tuple1 = 3231587 HashCode of Tuple2 = 3231587 Tuple1 Item 5th = 100 Tuple2 Item 5th = 100 Tuple1 Item 1st = 75 Tuple2 Item 1st = 75
위 예제에서는 두 개의 튜플을 생성한 뒤, Equals() 메서드로 두 튜플이 같은지 비교하고 해시 코드를 확인했습니다. 그리고 Item1과 Item5 속성을 사용해 각각 첫 번째와 다섯 번째 요소의 값을 출력했습니다. 두 튜플의 내용이 동일하기 때문에 같은 해시 코드를 가지며, 모든 요소 값도 일치하는 것을 확인할 수 있습니다.
예제 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
핵심 정리
- C# 튜플의 첫 번째 요소는 Item1 속성으로 접근합니다.
- 튜플 요소는 1부터 시작하며, 최대 7개까지는 Item1~Item7로 직접 접근할 수 있습니다.
- 8개 이상의 요소가 필요한 경우 나머지 값들은 중첩 튜플(Nested Tuple)인 Rest 속성에 저장됩니다.
Tuple.Create()메서드를 사용하면 타입을 명시하지 않고도 간편하게 튜플을 생성할 수 있습니다.