C#에서 Tuple<T1> 클래스는 요소를 하나만 가지는 1-튜플(1-tuple)을 나타내며, 이를 싱글톤(Singleton)이라고 부릅니다. 튜플(Tuple)은 여러 개의 요소를 순서대로 담을 수 있는 데이터 구조로, 보통 2개 이상의 값을 하나의 단위로 다룰 때 유용하게 사용됩니다.
1-튜플의 기본 개념
1-튜플은 단 하나의 값만 저장하지만, 일반 변수와 달리 튜플 형태로 값을 감싸서 관리할 수 있다는 점이 특징입니다. 저장된 값에는 Item1 속성을 통해 접근할 수 있습니다.
예제 1: 정수형 1-튜플 만들기
다음 예제는 C#에서 정수 값을 가지는 1-튜플을 생성하고 활용하는 방법을 보여줍니다.
using System;
public class Demo {
public static void Main(string[] args) {
Tuple<int> tuple = new Tuple<int>(100);
Console.WriteLine("Value = " + tuple.Item1);
if (tuple.Item1 == 150) {
Console.WriteLine(tuple.Item1);
}
if (tuple.Item1 == 100) {
Console.WriteLine(tuple.Item1);
}
}
}출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Value = 100 100
튜플에 저장된 값이 100이므로 첫 번째 조건문(Item1 == 150)은 건너뛰고, 두 번째 조건문(Item1 == 100)이 참이 되어 값이 출력된 것을 확인할 수 있습니다.
예제 2: 문자열 1-튜플 만들기
문자열 타입으로도 1-튜플을 손쉽게 만들 수 있습니다. 아래 예제를 살펴보겠습니다.
using System;
public class Demo {
public static void Main(string[] args) {
Tuple<string> tuple = new Tuple<string>("amit");
Console.WriteLine("Value = " + tuple.Item1);
if (tuple.Item1 == "tom") {
Console.WriteLine(tuple.Item1);
}
if (tuple.Item1 == "amit") {
Console.WriteLine("Exists: Tuple Value = " + tuple.Item1);
}
}
}출력 결과
Value = amit Exists: Tuple Value = amit
저장된 문자열이 "amit"이므로 "tom"과 비교하는 조건문은 실행되지 않고, 일치하는 조건문만 통과하여 결과가 출력됩니다.
정리
C#에서 1-튜플은 Tuple<T> 생성자에 단일 값을 전달하는 것만으로 간단히 만들 수 있으며, 값에 접근할 때는 Item1 속성을 사용합니다. 참고로 C# 7.0 이상에서는 더 간결한 ValueTuple(값 튜플) 문법도 제공되므로, 상황에 맞게 선택하여 사용하면 됩니다.