C#에서 Tuple<T1, T2> 클래스는 두 개의 요소를 담는 2-튜플(2-tuple), 즉 쌍(pair)을 나타냅니다. 튜플(tuple)은 여러 요소를 하나의 시퀀스로 묶어 관리할 수 있는 데이터 구조로, 서로 연관된 값을 그룹화하는 데 매우 유용합니다.
Tuple<T1, T2>의 주요 활용 사례
튜플은 다음과 같은 상황에서 효과적으로 사용됩니다.
- 데이터 집합에 더 쉽게 접근할 수 있습니다.
- 데이터 집합을 더 간편하게 조작할 수 있습니다.
- 하나의 데이터 세트를 단일 단위로 표현할 수 있습니다.
- 메서드에서 여러 개의 값을 반환할 수 있습니다.
- 메서드에 여러 개의 값을 전달할 수 있습니다.
Item1과 Item2 속성
Tuple<T1, T2> 클래스는 두 가지 핵심 속성을 제공합니다.
- Item1 – 현재 Tuple<T1, T2> 객체의 첫 번째 구성 요소 값을 가져옵니다.
- Item2 – 현재 Tuple<T1, T2> 객체의 두 번째 구성 요소 값을 가져옵니다.
예제 1: 문자열 쌍 다루기
다음은 C#에서 2-튜플을 구현한 첫 번째 예제입니다. 두 개의 문자열 값으로 튜플을 생성하고 Item1, Item2 속성으로 각 요소에 접근하는 방법을 보여줍니다.
using System;
public class Demo {
public static void Main(string[] args) {
Tuple<string,string> tuple = new Tuple<string,string>("jack", "steve");
Console.WriteLine("Value = " + tuple.Item1);
if (tuple.Item1 == "jack") {
Console.WriteLine("Exists: Tuple Value = " +tuple.Item1);
}
if (tuple.Item2 == "david") {
Console.WriteLine("Exists: Tuple Value = " +tuple.Item2);
}
}
}실행 결과
위 코드를 실행하면 다음과 같은 출력이 생성됩니다.
Value = jack Exists: Tuple Value = jack
예제 2: 숫자와 문자열 조합하기
두 번째 예제에서는 int형과 string형처럼 서로 다른 타입의 값을 하나의 튜플로 결합하는 방법을 살펴봅니다. 이처럼 튜플은 타입 파라미터를 자유롭게 지정할 수 있어 다양한 데이터 조합을 표현할 수 있습니다.
using System;
public class Demo {
public static void Main(string[] args) {
Tuple<int,string> tuple = new Tuple<int,string>(20, "steve");
Console.WriteLine("Value = " + tuple.Item1);
if (tuple.Item1 == 20) {
Console.WriteLine("Exists: Tuple Value = " +tuple.Item1);
}
if (tuple.Item2 == "david") {
Console.WriteLine("Exists: Tuple Value = " +tuple.Item2);
}
}
}실행 결과
위 코드를 실행하면 다음과 같은 출력이 생성됩니다.
Value = 20 Exists: Tuple Value = 20
정리
C#의 Tuple<T1, T2> 클래스는 두 개의 관련된 값을 하나의 객체로 묶어 관리할 수 있게 해주는 강력한 도구입니다. 메서드에서 복수의 값을 반환하거나, 임시로 데이터를 그룹화해야 할 때 클래스나 구조체를 별도로 정의하지 않고도 간결하게 문제를 해결할 수 있다는 점이 큰 장점입니다.