C#, 자료구조

[자료구조] - Tuple

MuscleDeveloper5683 2024. 4. 12. 20:52
728x90
SMALL

 

Tuple 이란?

- C#에서 Tuple(튜플)은 다양한 데이터 형식의 요소들을 담고 있는 간단한 자료구조

- 여러 값을 그룹화하고 반환하기 위해 매우 편리하다.

 

 

Tuple의 특징

  1. 여러 값의 그룹화: Tuple은 서로 다른 형식의 요소들을 하나의 객체로 묶어서 다룰 수 있다. 예를 들어, int, string, bool 등 다양한 형식의 값을 함께 그룹화할 수 있다.
  2. 익명 타입: Tuple은 이름이 없는 익명의 타입이다. 일반적인 클래스나 구조체와 달리 클래스나 구조체의 이름이 필요하지 않다.
  3. Immutable (불변): Tuple은 한 번 생성되면 변경할 수 없다. 값을 읽을 수는 있지만, 내부의 요소를 변경할 수는 없다.
  4. 패턴 매칭: C# 7.0부터 패턴 매칭(pattern matching)과 함께 사용할 수 있어서, 간결하게 Tuple의 요소를 추출하고 사용할 수 있다.

 

🔔주의 사항🔔

- Unity에서 Tuple을 사용하려면 다음과 같이 System 네임스페이스를 추가해야 한다.

 

 

 

기본 구조 - 테스트 코드

 

var person = Tuple.Create(1, "John", true); - [이 부분은 Tuple.Create 메서드를 사용하여 Tuple 객체 person을 생성]

 

var (id, name, active) = person; - [이 부분은 Tuple의 요소들을 분해하여 각 요소를 새로운 변수인 id, name, active에 할당, 이를 통해 Tuple의 각 요소를 더 직관적이고 편리하게 사용할 수 있다.]

 

 

 

 

실행 결과

 

 

 

 

즉 아래와 같이 쉽고 간편하게 사용할 수 있다.

 

 

 

 

 


 

 

 

Tuple을 사용하여 복합적인 데이터 구조를 생성하고 각 요소에 접근하는 예제 - 테스트 코드

  • 첫 번째 요소: 1
  • 두 번째 요소: 2
  • 세 번째 요소: 3
  • 네 번째 요소: 4
  • 다섯 번째 요소: 5
  • 여섯 번째 요소: 6
  • 일곱 번째 요소: 7
  • 여덟 번째 요소: Tuple.Create(8, 9, 10, 11, 12, 13)

 

numbers.Item1은 Tuple의 첫 번째 요소인 1을 반환, numbers.Item7일곱 번째 요소인 7을 반환

 

numbers.Rest는 Tuple의 나머지 요소를 포함하는 Tuple을 반환

 

 

 

 

 

실행 결과

 

 

 

 

728x90