C# Tuple<T1> 클래스란?
Tuple<T1> 클래스는 요소가 하나뿐인 1-튜플(one-tuple)을 나타내며, 이러한 형태를 싱글턴(singleton)이라고 부릅니다. 튜플(tuple)은 여러 요소를 순서대로 담는 데이터 구조로, 서로 연관된 데이터를 하나의 단위로 묶어 다룰 때 매우 유용합니다.
주요 활용 사례
- 데이터 집합에 더욱 쉽게 접근
- 데이터 집합을 더욱 편리하게 조작
- 단일 데이터 집합을 하나의 객체로 표현
- 메서드에서 여러 값을 반환해야 할 때
- 메서드에 여러 값을 전달해야 할 때
특히 C#에서 메서드는 기본적으로 하나의 값만 반환할 수 있기 때문에, out 매개변수 대신 튜플을 활용하면 코드의 가독성과 타입 안정성이 크게 향상됩니다.
Item1 속성
Tuple<T1> 클래스는 다음과 같은 하나의 속성을 제공합니다.
- Item1 − 현재 Tuple<T1> 객체의 첫 번째(그리고 유일한) 구성 요소 값을 가져옵니다.
예제 1: 정수형(int) 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
위 예제에서는 int 타입의 1-튜플을 생성한 뒤, Item1 속성으로 저장된 값을 확인합니다. 값이 150이면 아무것도 출력되지 않고, 값이 100일 때 두 번째 조건문이 실행되어 결과가 화면에 나타납니다.
예제 2: 문자열(string) 1-튜플
이번에는 string 타입을 사용하는 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
첫 번째 조건문은 튜플의 값이 "tom"이 아니므로 실행되지 않습니다. 반면 두 번째 조건문은 값이 "amit"와 일치하므로, 해당 메시지가 정상적으로 출력됩니다. 이처럼 Tuple<T1>은 숫자든 문자열이든 어떤 타입이든 하나의 값을 안전하게 감싸서 다룰 수 있는 간단하면서도 실용적인 도구입니다.