C#에서 Tuple<T1, T2, T3, T4, T5, T6, T7> 클래스는 7개의 요소를 담는 튜플, 즉 7-튜플(세븟, Septet)을 나타냅니다. 튜플(Tuple)은 여러 요소를 하나의 시퀀스로 묶어 관리할 수 있는 데이터 구조로, 서로 다른 자료형의 값들을 하나의 단위처럼 다룰 수 있다는 점이 큰 장점입니다.
7-튜플의 주요 활용 사례
- 데이터 집합에 더 쉽고 편리하게 접근
- 데이터 집합을 간단하게 조작
- 단일 데이터 집합을 하나의 객체로 표현
- 메서드에서 여러 개의 값을 한 번에 반환
- 메서드 호출 시 여러 개의 값을 한 번에 전달
예제 1 – 7-튜플 생성 및 요소 접근
다음 예제는 C#에서 7-튜플을 생성하고, Item1부터 Item7 속성을 이용해 각 요소에 접근하는 방법을 보여줍니다. 또한 if 문을 사용해 특정 위치의 값이 원하는 값과 일치하는지 확인할 수 있습니다.
using System;
public class Demo {
public static void Main(string[] args) {
Tuple<int, int, int, int, int, int, int> tuple = new Tuple<int, int, int, int, int, int, int>(100, 150, 200, 300, 600, 1000, 2000);
Console.WriteLine("Value (Item1)= " + tuple.Item1);
Console.WriteLine("Value (Item2)= " + tuple.Item2);
Console.WriteLine("Value (Item3)= " + tuple.Item3);
Console.WriteLine("Value (Item4)= " + tuple.Item4);
Console.WriteLine("Value (Item5)= " + tuple.Item5);
Console.WriteLine("Value (Item6)= " + tuple.Item6);
Console.WriteLine("Value (Item7)= " + tuple.Item7);
if (tuple.Item5 == 600) {
Console.WriteLine("Exists: Tuple Item 5 = " + tuple.Item5);
}
if (tuple.Item6 == 900) {
Console.WriteLine("Exists: Tuple Item 6 = " + tuple.Item6);
}
if (tuple.Item7 == 2000) {
Console.WriteLine("Exists: Tuple Item 7 = " + tuple.Item7);
}
}
}
실행 결과
위 코드를 실행하면 다음과 같은 출력이 나타납니다. Item6은 값이 900이 아니므로 해당 조건문은 건너뛰어집니다.
Value (Item1)= 100
Value (Item2)= 150
Value (Item3)= 200
Value (Item4)= 300
Value (Item5)= 600
Value (Item6)= 1000
Value (Item7)= 2000
Exists: Tuple Item 5 = 600
Exists: Tuple Item 7 = 2000
예제 2 – 튜플 요소 값 비교하기
이번에는 두 번째 예제를 통해 7-튜플의 서로 다른 요소끼리 값을 비교하는 방법을 살펴보겠습니다. 마지막 조건문에서 Item6과 Item7의 값을 비교하여 두 요소가 일치하면 메시지를 출력합니다.
using System;
public class Demo {
public static void Main(string[] args) {
Tuple<int, int, int, int, int, int, int> tuple = new Tuple<int, int, int, int, int, int, int>(100, 150, 200, 300, 600, 1000, 1000);
Console.WriteLine("Value (Item1)= " + tuple.Item1);
Console.WriteLine("Value (Item2)= " + tuple.Item2);
Console.WriteLine("Value (Item3)= " + tuple.Item3);
Console.WriteLine("Value (Item4)= " + tuple.Item4);
Console.WriteLine("Value (Item5)= " + tuple.Item5);
Console.WriteLine("Value (Item6)= " + tuple.Item6);
Console.WriteLine("Value (Item7)= " + tuple.Item7);
if (tuple.Item5 == 600) {
Console.WriteLine("Exists: Tuple Item 5 = " + tuple.Item5);
}
if (tuple.Item6 == 900) {
Console.WriteLine("Exists: Tuple Item 6 = " + tuple.Item6);
}
if (tuple.Item7 == 2000) {
Console.WriteLine("Exists: Tuple Item 7 = " + tuple.Item7);
}
if (tuple.Item7 == tuple.Item6) {
Console.WriteLine("Tuple Items Matched!");
}
}
}
실행 결과
이번에는 Item6과 Item7의 값이 모두 1000으로 같기 때문에, 마지막 비교 조건이 참이 되어 일치 메시지가 함께 출력됩니다.
Value (Item1)= 100
Value (Item2)= 150
Value (Item3)= 200
Value (Item4)= 300
Value (Item5)= 600
Value (Item6)= 1000
Value (Item7)= 1000
Exists: Tuple Item 5 = 600
Tuple Items Matched!
정리
C#의 7-튜플은 Item1부터 Item7까지의 읽기 전용 속성을 제공하며, 여러 값을 하나의 객체로 묶어 전달하거나 반환해야 할 때 유용하게 사용할 수 있습니다. 단, 튜플의 요소는 불변(immutable)이므로 생성 이후에는 값을 변경할 수 없다는 점을 기억해두시기 바랍니다.